Links
1⃣

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 two North West and South East coordinates that create a LatLngBounds.
final region = RectangleRegion(
LatLngBounds(
LatLng(), // North West
LatLng(), // South East
),
);
Skewed parallelograms (rectangles with a 3rd control point) or rotated rectangles are not currently supported
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 toOutline(s) method to generate the points forming the Polygon, then it places this/these polygons into a PolygonLayer.
© Luka Stillingfleet (JaffaKetchup)