Skip to main content

flutter_unified_map

Unified maps

Write your map once with the flutter_map vocabulary — the best native engine renders it on every platform.

Google Maps on Android, Apple MapKit on iOS and macOS, and pure-Flutter flutter_map on the web, Windows and Linux. Everything below runs in the example app, from one widget tree.

flutter_unified_map example app on macOS: Apple MapKit renders a route from Paris to Lyon to Marseille, with tap targets and the example app's control bar.
macOSApple MapKit — the same route screen as the iPhone, drawn by the same widget tree.

Screenshots

Every layer, on the device

Apple MapKit, iPhone 17 Pro Max simulator
MarkerLayer (ios): A designed pin on every European capital — widget markers rasterised once per iconKey, drawn by the native map.
MarkerLayerA designed pin on every European capital — widget markers rasterised once per iconKey, drawn by the native map.
PolygonLayer (ios): Every European country outlined, with its name label and tap highlighting.
PolygonLayerEvery European country outlined, with its name label and tap highlighting.
PolylineLayer (ios): The EU institutions as a GPS star: Commission to Parliament, Court of Justice and ECB.
PolylineLayerThe EU institutions as a GPS star: Commission to Parliament, Court of Justice and ECB.
CircleLayer (ios): Someone in Strasbourg: the accuracy circle grows and shrinks with the GPS precision.
CircleLayerSomeone in Strasbourg: the accuracy circle grows and shrinks with the GPS precision.
Overlay image (ios): The European flag draped over the EU: aspect kept, covering the whole union, cut at the borders.
Overlay imageThe European flag draped over the EU: aspect kept, covering the whole union, cut at the borders.

Why flutter_unified_map

One map API for every platform

  • One API, every platform — UnifiedMap, MapOptions, MarkerLayer, PolylineLayer, PolygonLayer, CircleLayer, TileLayer keep flutter_map’s names and fields.
  • The best engine per platform — Google Maps on Android, Apple MapKit on iOS and macOS, pure-Flutter flutter_map on web, Windows and Linux.
  • Widgets as markers — A marker child is an ordinary Flutter widget, rasterised once and handed to the native map as a bitmap.
  • A real plugin API — Extension packages build on plugin_api.dart — like the marker cluster package — in the spirit of flutter_map’s own plugin API.

Why & How

flutter_map's API, the platform's maps

flutter_map draws raster tiles from a tile server with pure Flutter widgets. DartStack Map keeps that API, but hands the pixels to the platform's own map engine: Google Maps on Android, Apple MapKit on iOS and macOS. What you gain is native rendering and native gestures; what you keep is flutter_map's vocabulary; and the base map — tiles, styles, traffic — is served by the platform vendors, free on every supported device. No tile server to run, no tile usage policy, no per-platform bill.

Native where it exists

The Google Maps SDK on Android and MapKit on iOS and macOS render the base map and handle the gestures themselves. Google's Mobile Native Dynamic Maps SKU is free and unlimited; MapKit is part of the operating system.

The API you already know

UnifiedMap, MapOptions, MarkerLayer, PolylineLayer, PolygonLayer, CircleLayer, TileLayer: same names, same fields, same camera. Porting a flutter_map screen is close to changing the import.

flutter_map where natives can't go

Web, Windows, Linux and widget tests run the real flutter_map as the backend, so the same code ships everywhere a native map does not exist — including your test suite.

Thanks

Credits & Contributing

DartStack is built in the open, on the shoulders of other open source projects.

Credits

flutter_unified_map succeeds UnifiedMaps, the Xamarin.Forms library by fivenine-zurich. The API vocabulary is modeled on flutter_map, this site's theme is ported from TanStack, and docs.fleaflet.dev is our documentation structure reference. DartStack is not affiliated with or endorsed by any of them.

Contributing

Issues and pull requests are welcome in every repository of the dartstack-dev organization: each library lives in its own repo with its example app and its tests.

Supporters

DartStack has no sponsors yet. Star the repositories, ship something with the libraries and get in touch — the first showcase entries are yours.