MapPolygon.coordinates constructor
MapPolygon.coordinates(
- List<double> coordinates
)
Implementation
factory MapPolygon.coordinates(List<double> coordinates) {
List<MapPoint> externalPoints = [];
List<MapLinearRing> internalRings = [];
List<MapPoint> points = [];
for (int i = 0; i < coordinates.length; i = i + 2) {
if (i < coordinates.length - 1) {
double x = coordinates[i];
double y = coordinates[i + 1];
points.add(MapPoint(x, y));
if (points.length >= 3) {
if (points.first.x == x && points.first.y == y) {
// closing ring
if (externalPoints.length == 0) {
externalPoints = points;
} else {
internalRings.add(MapLinearRing(points));
}
points = [];
}
}
}
}
return MapPolygon(MapLinearRing(externalPoints), internalRings);
}