Page cover image

flutter_map_tile_caching

Highlights

📲

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!

  • with and

  • when bulk downloading

  • Recoverable failed bulk downloads

🏃

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 re-downloaded 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!

Trusted by many

In addition to our generous supporters, FMTC is also trusted and all around the world. Here's just a few!

How can FMTC elevate my app to the next level?

Easy! Take a look at Google Maps, or Strava, or whichever other app of your choice.

More than just preset rectangles

Whether it's walking along a remote winding river using the Line region, downloading all of central London ready for that weekend exploration using the Circle region (roaming fees + maps gets expensive fast!), or tracking your belongings across a vast, shapeless space using the Custom Polygon region, FMTC has your user's back - but not all of their storage space!

Keep storage usage efficient

With Sea Tile Skipping, you can avoid storing unnecessary tiles of pure sea, then use the map client's functionality to just paint the spaces the same color as the sea.

Highly flexible stores allow for multiple stores to be used to more efficiently store and control areas, and tiles can be used by multiple stores without duplication.

Import/export functionality allows users to temporarily offload stores to another device to keep their device lightweight until they require those tiles, without having to download them from the origin server again.

Raster tiles do consume more storage than vector tiles. Vector tile support is planned and already possible with some custom integration.

Highly controllable and flexible downloads

Bulk 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.

I wonder how much it costs the app developers?

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.

And with export/import functionality, user's can download regions just once, then keep the download themselves for another time. Or, you can provide a bundle of tiles to all your user's, while still allow it to be updated per-user in future!

For (proprietary) licensing information, as FMTC is licensed under GPL-v3, please see (Proprietary) Licensing.


Supporting Me

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 appreciated, and means a lot to me :)

💝Supporters

(Proprietary) Licensing

📃(Proprietary) Licensing

Get Help

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!

Last updated

Was this helpful?