A plugin for 'flutter_map' providing advanced offline functionality
In addition to our generous , FMTC is also trusted and used by businesses all around the world:
Too easy 😄! Take a look at Google Maps, or Strava, or whichever other app of your choice.
Whether it's walking along a remote winding river using the , downloading all of central London ready for that weekend exploration using the (roaming fees + maps gets expensive fast!), or tracking your belongings across a vast, shapeless space using the , FMTC has your user's back - but not all of their storage space!
With Sea Tile Skipping, you can avoid storing those unneccessary tiles of sea, then use the map client's functonality to just paint the spaces the same color as the sea. This also preserves sea tiles that aren't so empty after all - that boat path could come in handy. Just another way FMTC keeps your user's phone bloat free ;)
Not with FMTC! Downloads can be paused and resumed at any time, and with Download Recovery, downloads that stopped unexpectedly can be started right from where they left off, without your user even knowing something went wrong.
FMTC supports bulk downloading from any tile server*, so you can choose whichever one suits you best.
Our browse caching mechanism doesn't result in any extra requests to the tile server, and in fact can reduce costs by serving tiles to users from their local cache without cost. Or, if you're running your own server, you can reduce the strain on it, keeping it snappy with fewer resources!
Downloads can be rate limited to avoid running up to the server's rate limit or excess fee.
This project is wholly open source and funded by generous supporters like you! Any amount you can spare that you think FMTC deserves is hugely appriciated, and means a lot to me.
FMTC is licensed under GPL-v3.
If you're developing an application that isn't licensed under GPL, this affects you and your application's legal right to distribution.
Not quite sure about something? No problem, I'm happy to help!
Please get in touch via the correct method below for your issue, and I'll be there to help ASAP!
For bug reports & feature requests:
For implementation/general support: The #plugin channel on the
For other inquiries and licensing:
◉ 📲
Integrated Caching × Bulk Downloading
Get both dynamic browse caching that works automatically as the user browses the map, and bulk downloading to preload regions onto the user's device, all in one convenient, integrated API!
Multi-cache ('store') support with minimized tile duplication
Download any shape of area
Automatic sea tile skipping
Super-controllable downloads
Optional download rate limiting
◉ 🏃
Ultra-fast & Performant
No need to bore your users to death anymore! Bulk downloading is super-fast, and can even reach speeds of over 1000 tiles per second*. Existing cached tiles can be displayed on the map almost instantly.
Multi-threaded setup to minimize load on main thread, even when browse caching
Streamlined internals to reduce memory consumption
Successfully downloaded tiles aren't redownloaded when an unexpectedly failed download is recovered
◉ 🧩
Import & Export
Export and share stores, then import them later, or on other devices! You could even remote control your organization's devices, by pushing tiles to them, keeping your tile requests (& costs) low!
◉ 💖
Quick To Implement & Easy To Experiment
A basic caching implementation can be setup in four quick steps, and shouldn't even take 5 minutes to set-up. Check out our Quickstart instructions.
Ready to experiment with bulk downloading, but don't want to make costly and slow tile requests? Check out the testing tile server included in the FMTC project: Testing Tile Server!
...and many more!


