Cached at:
09/14/26, 03:03 PM
# Finished aerial maps in under 30 minutes
Source: [https://blog.zm.is/finished-aerial-maps-within-30-minutes/](https://blog.zm.is/finished-aerial-maps-within-30-minutes/)
I recently got a DJI Lito X1 and decided to see just how far I can push it\. Aerial mapping sounded exciting: in a few minutes you can surpass Google Maps imagery and forever have a reference map of a place\.
## The process
1. Plan the flight: altitude, flight speed, flight path \(2 minutes\)
2. Copy the KMZ to the device running DJI Fly using`adb`\(1 minute\)
3. Open DJI Fly and select Waypoint Flight \(1 minute\)
4. Click Start and pour yourself a tea \(optional\) \(3 minutes\)
5. Download images from the drone \(3 minutes\)
6. Upload images to Zeitgeist Survey \(varies, around 2–4 minutes\)
7. Zeitgeist Survey offloads the photographs to a dedicated tile processing node \(90 seconds\)
8. Dedicated tile processing node stitches the photographs into a map \(8 minutes\)
9. Zeitgeist Survey fetches the finished tiles from the tile processing node \(9 seconds\)
## 1 \- Plan your mission
Here we plan the flight pathWe need to ensure not to have the speed too high, otherwise the camera won't be able to keep up, and there will be gaps and misalignment in the finished map\.
As you can see, I found 3\.5 m/s at 80 m altitude to be effective\. Lower altitude flights are higher resolution \(obviously\), but take longer\. It's all trigonometry after all\. The same FOV lower down sees less\.
## 2 \- Copy the KMZ to the device
DJI doesn't make this easy\. DJI Fly has no import\.
Create a placeholder mission in the app by opening Waypoint Flight and adding some useless waypoints\. We're not going to use them, but it is essential that we add them\.
Yes, really, it means you need to take off for the sole purpose of adding these waypoints that you're not going to use, since you cannot add any waypoints while on the ground\.
This will create`/sdcard/Android/data/dji\.go\.v5/files/waypoint/<GUID\>/<GUID\>\.kmz`on the device, which, frustratingly, you can only see by connecting your device to a computer\. I used`adb`\. You'll need to find the KMZ you downloaded and replace the`<GUID\>\.kmz`already there with it\. Don't change the names\.
```
# find the GUID DJI Fly just created
adb shell ls /sdcard/Android/data/dji.go.v5/files/waypoint/
# keep a copy of the placeholder before overwriting it
adb pull /sdcard/Android/data/dji.go.v5/files/waypoint/<GUID>/<GUID>.kmz placeholder.kmz
# put the planned mission in its place, keeping the GUID name
adb push mission.kmz /sdcard/Android/data/dji.go.v5/files/waypoint/<GUID>/<GUID>.kmz
```
At first glance in the folder, it shouldn't look like you changed anything\.
## 3 \- Open DJI Fly
Luckily DJI has a[tutorial on how to get to Waypoint Flight](https://support.dji.com/help/content?customId=en-us03400007343&spaceId=34&re=US&lang=en&documentType=artical&paperDocType=paper&ref=blog.zm.is), but since you already added some waypoints, you should know where to go\. You will note that the waypoints you added are gone, and the programmed flight path is now visible on the device\.
## 4 \- Click start and wait
Watching this is amazingly entertainingYou really only need to click start and wait\. I cannot stress enough how fantastically cool this is\. It will take off, fly to the first point, fly the whole route, capturing photos on the way \(36 in this case\), and then automatically land\.
I maximised the map here since there are more interesting things to see there than on an empty field, but you might want to keep an eye on the camera just in case\.
## 5 \- Download images from the drone
After you land, you can simply select all from today, aiming to match up the number of images with what you saw in Waypoint Flight\. If you captured 36, you will want to download 36\. If you did some recreational flying after your mapping, ensure you select all of the mapping photographs first\.
If in doubt, download it\. Each image is geotagged\. We don't much care that the images were taken precisely at each point on the flight path\. The tile processing server computes the map from the geographical information in each photograph, and discards images where the gimbal was not pointing exactly down\. Ergo, it's fine to accidentally submit non\-mapping images to the processing server \- I know it's hard to juggle so many images on a mobile device\.
## 6 \- Upload images
This can be done from the phone or computer in several different ways, depending on what goes wrong \(something will eventually go wrong\)\.
1. Manual upload of individual photographs
2. A ZIP file containing the photographs
3. Dedicated Android app coming soon
## 7, 8 & 9 \- Photographs offloaded to the processing node
To process the photographs, I'm using an on\-site machine connected over Tailscale\.
It then stitches the map, and the finished tiles are pulled back to the Zeitgeist Survey cloud server\.
## The finished map
Map plus basemapJust basemap for comparisonBorder between basemap and tiles \(can you see me?\)There we have it, an end\-to\-end demonstration of the Zeitgeist Survey capabilities\. Plan to delivered map in under 30 minutes\.
Or, a selfie with extra stepsYou can press the button below to see the live interactive map\.