Mobile GIS data collection apps with Leaflet and PostGIS

Use your phone as a GPS data collection device with no users fees or subscriptions

4.40 (93 reviews)
Mobile GIS data collection apps with Leaflet and PostGIS
10.5 hours
Nov 2019
last update
regular price

What you will learn

Develop your own custom mobile data collection applications that are limited only by your imagination and don't require expensive user fees or subscriptions.


Learn how to develop your own HTML5 GPS data collection applications that work like a native app on your mobile device.  While there are many canned options available for mobile data collection that may meet your needs, there are many times when it may be more cost-effective to develop your own.

  1. Cost - Even if your needs are simple many commercial applications require monthly per-user subscriptions, often in the neighborhood of $30-$50 per month. For 1 or 2 users that may not be much but with 50 users it quickly becomes cost effective to write your own.

  2. Customizability - Commercial "non-programming" solutions tend to be one-size fits all. Although they may have some flexibility, it is not uncommon for many applications to need functionality that is not available.  Writing your own mean that if you can envision it you can implement it. Often you can implement it faster than you could in a "non-programming" solution even if it is available.

  3. Real-time data access - The techniques taught in this course access a PostGIS database directly so that any changes that are made are available immediately to any other client applications whether they be desktop GIS like ArcGIS or QGIS, other web applications, or other client software such as a spreadsheet program, etc.  This also means that there is no time wasted transferring data from device to server, etc which may save hundreds or even thousands of man hours in large data gathering efforts and avoid a large source of errors.

HTML5 web applications also have some downsides for this type of work and these are discussed in the course and potential solutions are also addressed.



Preview of the finished product
Content management system setup
Database setup

Getting started

Getting started
Initializing the map
Adding crosshairs to the map center
Control Buttons
Event handlers for the control buttons


Going live and demonstration
Turning autolocate on and off
Slider to control autolocation interval
The breadcrumb trail
Cleaning up and testing the breadcrumb trail

The info screen

The info screen - current position
The info screen - previous position
The info screen - rates of change
Accuracy filter - part 1
Accuracy filter - part 2

The points list

Adding a popup to breadcrumbs
Listing breadcrumb points - part 1
Listing breadcrumb points - part 2
Searching breadcrumbs
Summing breadcrumb distances

The settings screen

Persisting settings to local storage
Retrieving settings from local storage
Going live and testing the app

Working with the database

Loading generic points - part 1
Loading generic points - part 2
Loading generic lines and polygons
Populating the layers subscreen
Populating the features list - part 1
Populating the features list - part 2
Finding a feature - part 1
Finding a feature - part 2

Collecting data

Setting up the data collection form
Collecting point data
Submitting point data to PostGIS
Collecting a point from a screen tap
Collecting a point using the crosshairs
Collecting a point using GPS averaging - part 1
Collecting a point using GPS averaging - part 2
Finishing touches
Testing and demonstration

Collecting lines and polygons

Setting up streaming mode
Setting up the stream controls
Adding stream points to lyrVertices
Converting the points in lyrVertices to a geojson line or polygon
Submitting lines and poygons to the database
Collecting lines and polygons in vertex mode
Testing and demonstration

Finishing touches

Viewing the vertex points
Deleting features
Editing features
Navigating to a feature

Going off-line

Preparing to go off-line
Storing the data locally
Recreating the features list from local data
Recreating the features list from local data - Part 2
Searching and navigating to features while offline.

Synchronizing off-line changes to the database

Preparing for synchronization
Adding off-line deletions to the synchronization que
Off-line updates
Off-line inserts
Persisting the synchronization que

Bonus Lecture

Bonus Lecture: How to get the most from my series of Udemy courses.


December 19, 2021
First of all: - Instructor is having in-depth knowledge on the subject and he is able to transfer the knowledge to the student. - Clear communication and to the point explanation. Giving three stars because: - In the last lecture # 66, instructor says, we will learn committing offline changes to database in the next lecture. But there is no next lecture. - Instructor is required to share final complete project code with "All and Only" supporting resources (js, css, php and other files, without including junk files which were not discussed during the training) - there are two buttons in the feature list screen. Refresh and Download. Existing training does not cover those two buttons. Instructor may consider addressing these three points and I may revise rating to 5 star.
September 8, 2021
This is one of the most useful and informative courses that I've taken (whether through Udemy or college). Awesome!
May 3, 2020
One lesson is still missing. I would like to rate this course with 5*. Because the lesson "sending the SyncQue to DB is missing, I can rate it with 4,5 Stars. As soon you deliver this last lesson I will update my rating again, I promise!!! Great course anyway!!!
April 10, 2020
Excellent! I will however have to invest in some of the earlier courses and spend some more time repeating and refreshing to start learning and remembering functions. Hope to have my own app up and running soon
January 2, 2020
This Course is amazing I learned a lot of things about Mobile GIS, which are very useful for my work. Thanks a lot Mr. Miller
September 10, 2019
The course provides a lot of information about how to set up a mobile gps system. In spite of the some difficulty at the beginning in setting up the database info because the course did not supply the information I managed to overcome these obstacles. The course has a lot of detailed information for anyone looking to understand mobile gps systems so well worth taking.
July 17, 2019
The course starts with letting you know that you HAVE to have purchased a previous CMS course to start. ALL Miller has to do is to give a database set up file so that the CMS section can be set up efficiently and this could be avoided. As it stands I have to decide to do the sucker punch purchase or sift through the code to set up the DB. I've gone from excited to seriously annoyed.
July 7, 2019
excellent!!Great teacher and developer.easy to follow tutorials in order to utilize and create unique applications.Thanks man
December 22, 2018
I wish there were instructions for setting up the data and everything else for the class so you get going with minimal effort. I didn't take the previous course and would like to have everything included in this course. It is very frustrating.
November 9, 2018
The instructor goes into super detail about using Leaflet and PostGIS in a way that only those that have worked with the code, and tools could communicate in this way.
August 16, 2018
I have taken several of Michael's courses. He does a great job of taking the technical and applying to real-world situations.



Mobile GIS data collection apps with Leaflet and PostGIS - Price chart


Mobile GIS data collection apps with Leaflet and PostGIS - Ratings chart

Enrollment distribution

Mobile GIS data collection apps with Leaflet and PostGIS - Distribution chart

Related Topics

udemy ID
course created date
course indexed date
course submited by