Built for spray-drone operators
Aerial maps your sprayer can actually fly.
SwathMap turns a drone flight into a fast, accurate orthomosaic — then into the boundary, obstacle and no-spray files your controller reads. DJI Agras, XAG, Hylio, EAVision, Ceres.
The processing platform is live in production and the first partner app is integrating now. The field tools described below are being built; operator accounts open in stages.
- 5 cm → 1 cmGround sample distance, picked per job — rapid turnaround or full detail
- No image capBig fields stay one dataset instead of being split to fit a plan limit
- 5 controllersAgras, XAG, Hylio, EAVision and Ceres export presets, plus generic GIS
- Production APIA documented REST surface other field platforms build directly on
How it works
Card to controller, without the GIS detour.
Most mapping tools stop at a pretty picture. The job isn't done until the sprayer has a file it will accept.
-
Upload the flight
Imagery goes straight up off the card. RTK positions are read from the image metadata where they exist, with a standard EXIF fallback when they don't.
-
Get the orthomosaic
Processing runs on a dedicated fleet rather than a shared queue. Choose a rapid 5 cm/px pass when you need it today, or push to 1 cm/px when the detail matters.
-
Mark up the field
Trace the boundary with acreage counting up as you go. Punch out woodlots and buildings as polygons, poles and pivot points as circles. Flag no-spray buffers, and pin notes for whoever flies it.
-
Export and fly
Download the file already shaped for your controller — right geometry, right winding, right projection — or push it through an integration where one exists.
Field tools
Everything the map needs before the sprayer ever sees it.
Drawing a shape is the easy part. What makes a map worth flying is the dozen small things around it — and those are the ones every generic mapping tool leaves to you.
Boundary drawing that behaves
Click the corners and watch the acreage count up as you go. Afterwards drag a corner, click a midpoint to add one, or grab the shape and move the whole thing.
Obstacles and no-spray, kept separate
An obstacle means fly around it. A no-spray zone means fly through with the nozzles off. Every controller imports the two differently, so they stay distinct all the way into the file.
Notes that reach the pilot
"Wet spot — spray last." "Neighbour's beans east, 20 ft buffer." Pinned on the map, and carried into the export so they're in front of whoever flies it.
Poles and pivots as circles
Press and drag a radius instead of tracing a tiny polygon around a single pole, pivot point or lone tree. Exports as whatever geometry the controller expects.
Start from a boundary you already have
Drop in a KML or zipped shapefile — John Deere Ops Center, FieldView, last season's SwathMap export — and start from it instead of tracing the same field again.
Last season's work on this season's map
Copy the boundary, obstacles and zones from last year's map of the same field onto this year's flight. The poles and the pivot haven't moved.
Hide what shouldn't show
Drag a box over the neighbour's field, a smeared corner, the truck sitting at the gate. It's display only — hidden areas never touch the geometry you export.
Trim the ragged edge
Shave the blurry outer band off the flight footprint so the map ends on clean imagery instead of the smear where the passes ran out.
Straight to the controller
For EAVision now and Ceres next, push the boundary and zones to the operator's account and let the aircraft pick them up — no download, no re-upload, no memory card.
Controller exports
Every sprayer wants a different file. That's our problem, not yours.
Each platform has its own format, its own import path, and its own quirks about how obstacles are encoded. SwathMap writes to those quirks so the file loads the first time.
DJI Agras Shapefile
Loose .shp .dbf .shx .prj written for the DJI/ShapeFile/ folder on the microSD card. Obstacles are encoded as reversed-winding holes inside the boundary — the way Agras actually reads them.
XAG KML
KML sized for import through XAG FMS into XAG One. Each polygon becomes a field; interior rings come across as exclusions.
Hylio KML / SHP
Boundaries for AgroSol GCS in either format, with obstacle geometry simplified to stay inside the coordinate budget the ground station accepts.
EAVision KML / GeoJSON
Files ready for Plot Management batch upload — plus a direct API integration, so plots can land in the operator platform without a download step.
Ceres KML
Clean, simple polygons for Applicator View and the push out to the aircraft. Node count and self-touching outlines are handled on our side, where they break route generation.
Generic GIS Open formats
Shapefile, KML/KMZ and GeoJSON in EPSG:4326, for everything else — your agronomist, your records, your FSA paperwork, or a controller we haven't met yet.
And it's checked before it leaves.
Every export runs the target platform's own rules first, in plain language: is there a boundary, does the outline cross itself, are the obstacles actually inside it, do two holes touch, is Hylio's 67-coordinate obstacle budget blown, is a Ceres outline too complex for route generation, are you trying to send DJI a no-spray area it cannot import? A red result blocks the download rather than letting you find out in the cab.
Why it's built this way
Designed around a spray season, not a software demo.
Turnaround is the product
A map that arrives after the window closed is worth nothing. Capacity is sized so a peak day drains in hours, and the rapid pass exists specifically for the flights you need back the same afternoon.
No image ceilings to design around
Plans are metered by how much you run at once, not by an image count per dataset. A section-sized field stays one map instead of being chopped into pieces you then have to stitch back together.
Resolution when it earns its keep
Rapid and standard resolutions cover the everyday work. High resolution is there for the jobs that need it, rather than being the default that makes every map slow and expensive.
Priced for operators
Subscription plans sized for a spray-season business, including an off-season rate so your history stays hosted through the winter. Not a per-seat enterprise licence. Pricing published at launch.
For platforms & integrators
The mapping engine behind your field app.
If you already own the customer relationship — a spray-logging app, an agronomy platform, a drone OEM's own portal — you don't need another dashboard for your users to log into. You need imagery to become a map, reliably, under your brand.
SwathMap runs as that backend. The platform is in production, and the first partner field-operations product is integrating against it now.
-
Your app registers a job
It tells SwathMap a new dataset is on the way and gets back somewhere to put it.
-
Imagery uploads straight to storage
Files travel from the operator's browser to object storage directly, so a large dataset never queues behind an API server and your app never holds storage credentials.
-
Processing runs on our fleet
Your app can check progress whenever it likes and present it however it likes.
-
You collect the products
An orthomosaic as a cloud-optimized GeoTIFF, web tiles ready to drop into a map, and a record of everything produced.
A sketch of the shape, not the interface. Real endpoints, authentication and payloads come with an integration.
-
Tenant isolation and fair share
Every frontend and every end client gets its own namespace, quota and scheduling share, so one large job can't starve everyone else on the platform.
-
White-label by default
The operator never sees us. It stays your app, your login and your branding — SwathMap is the part doing the work underneath.
-
A dedicated fleet, not a shared queue
Capacity is ours and sized for spray-season peaks, so what your users wait on is the job in front of them rather than a public backlog.
Get in touch
Tell us what you fly.
Operator accounts open in stages, and the order is driven by what people actually spray and what controllers they run. Leave your details and we'll come to you when your setup is supported — or just email directly.
- rick@agriflightlogs.com
- Platform & API enquiries
- Start an integration conversation
Thanks — you're on the list.
We'll be in touch as operator accounts open up. If it's urgent, email rick@agriflightlogs.com.