getConvexHull static method
List<LatLng?>
getConvexHull(
- List<LatLng> latLngs
)
Implementation
static List<LatLng?> getConvexHull(List<LatLng> latLngs) {
// find first baseline
double? maxLat, minLat, maxLng, minLng;
LatLng? maxLatPt, minLatPt, maxLngPt, minLngPt, maxPt, minPt;
for (var i = latLngs.length - 1; i >= 0; i--) {
var pt = latLngs[i];
if (maxLat == null || pt.latitude > maxLat) {
maxLatPt = pt;
maxLat = pt.latitude;
}
if (minLat == null || pt.latitude < minLat) {
minLatPt = pt;
minLat = pt.latitude;
}
if (maxLng == null || pt.longitude > maxLng) {
maxLngPt = pt;
maxLng = pt.longitude;
}
if (minLng == null || pt.longitude < minLng) {
minLngPt = pt;
minLng = pt.longitude;
}
}
if (minLat != maxLat) {
minPt = minLatPt;
maxPt = maxLatPt;
} else {
minPt = minLngPt;
maxPt = maxLngPt;
}
return <LatLng?>[
..._buildConvexHull([minPt!, maxPt!], latLngs),
..._buildConvexHull([maxPt, minPt], latLngs)
];
}