
Develop a cross-device web mapping app using Leaflet for mobile and desktop. Learn to handle offline access, elevation data, and aid-station information along a 100-mile course.
Adapt a web mapping app for mobile by handling small screens, touch interactions, and responsive design with CSS. Leverage GPS, offline storage, and tile caching to work with limited connectivity.
Learn to optimize a Leaflet web app for mobile with viewport meta tags, mobile web app capabilities, and a separate mobile page, plus testing with the device toolbar.
Increase button and icon sizes, adjust font sizes and padding for mobile, and apply responsive CSS with media queries to keep the sidebar usable on phones and tablets.
Detect mobile devices by inspecting navigator.userAgent with a regular expression, wrap the check in isMobile, and redirect to the mobile page, optionally using confirm to load the desktop site.
Explore how the project integrates Leaflet maps, elevation charts, and vector layers. Understand data loading, station handling, and interactive controls for mobile GIS applications.
Learn geolocation in Leaflet by using the map locate method, handling location found and location error events, and configuring options like watch, set view, timeout, and high accuracy.
Set up a 60-second interval to call the map locate method in Leaflet, update the position and accuracy in the UI, handle errors, and reflect status with color changes.
Explore how to add a user controlled interval slider to a mobile GIS app using Leaflet, JavaScript, and DOM events to adjust location polling and display current interval.
Learn to compute the minimum and maximum elevations between two points along a trail, adjust the y axis for a 20-mile window, and update the elevation profile during zoom.
Discover offline capabilities for a mobile GIS web app by storing data on device with web storage and IndexedDB, using offline APIs, and caching base maps.
Store map data locally, including leaf layers and elevation data, using local storage; load from storage when available, refresh from the server when needed, and persist the position interval setting.
Use the application cache API and manifest to cache files for offline access, while noting limitations and the eventual shift to service workers.
Learn to cache your application on a local device, manage the manifest and update the application cache, then test offline behavior with browser tools and an online status check.
Explore the application cache interface with JavaScript to monitor status, respond to events, handle manifest updates, and swap caches for a seamless offline experience.
Explore loading base maps offline with MBTiles in a single sqlite-like file, using a Leaflet plugin and QGIS to create zoomed tiles for local areas, including topographic and aerial layers.
Learn how to add custom base maps to a local device using the Leaflet tile layer MBTiles plugin, and cache them in the app for offline use.
Install the XAMPP package and Brackets text editor to set up a local web development environment, and learn the Apache web server, MySQL/MariaDB, and PHP components accessible via localhost.
Explore the anatomy of a url by breaking down the protocol, host name, domain, and file path, and learn how localhost testing leads to public hosting.
Create an app icon by cropping topographic map image to a 196 by 196 circle with a transparent background, and declare it as the shortcut icon, updating the cache manifest.
Explore the economics of Udemy courses, including pricing, discounts, coupons, and sales. Understand the instructor's philosophy on value, ratings, and creating geospatial gis content for professionals.
This course is focused on designing web-based mapping applications for mobile devices. I start with an example of a desktop app showing the course of a trail ultramaraton with aid stations, elevation profiles, etc. Then we modify some formatting to deal with issues arising from small screens, add the ability to track the user automatically with the devices GPS, and add the ability to use it off-line in all situations.