FMTC Docs
Current
Search…
⌃K
Links

Create A Region

Creating regions is designed to be easy for the user and you (the developer).
The Example Application contains a great way you might want to allow your users to choose a region to download, and it shows how to use Provider to share a created region and the number of approximate tiles it has to a download screen.

Types Of Region

All regions (before conversion to DownloadableRegion) implement BaseRegion.
Rectangle
Circle
Line
The most basic type of region, defined by a North West and South East coordinate bound - specifically a LatLngBounds object provided by flutter_map.
final region = RectangleRegion(
LatLngBounds(
LatLng(), // North West
LatLng(), // South East
),
);
A more advanced type of region, defined by a center coordinate and radius (in kilometers).
final region = CircleRegion(
LatLng(), // Center
0, // KM Radius
);
If you have two coordinates, one center, and one on the edge of the circle you want, you can use 'latlong2's Distance.distance() method, as below:
final region = CircleRegion(
LatLng(), // Center
const Distance(roundResult: false).distance(
LatLng(), // Center
LatLng(), // Edge Coord
) / 1000; // Convert to KM
);
The most advanced type of region, defined by a list of coordinates and radius (in meters).
final region = LineRegion(
[LatLng(), LatLng(), ...], // Series of coordinates
0, // M Radius
);
After you've created your region, you can convert it to a drawable polygon (below), or convert it to a DownloadableRegion ready for downloading.

Converting To Drawable Polygons

All BaseRegions can be drawn on a map with minimal effort from you or the user, using toDrawable().
Internally, this uses the toList or toOutline method to generate the points forming the Polygon, then it places this/these polygons into a PolygonLayer.
© Luka Stillingfleet (JaffaKetchup) | 2023