getNearbyPoints static method
List<LatLng>
getNearbyPoints(
- LatLng center,
- double radiusInMeters,
- int count
)
Implementation
static List<LatLng> getNearbyPoints(LatLng center, double radiusInMeters, int count) {
const earthRadius = 6371000; // in meters
final points = <LatLng>[];
for (var i = 0; i < count; i++) {
final angle = (360 / count) * i;
final bearingRad = _degToRad(angle);
final distanceRatio = radiusInMeters / earthRadius;
final lat1 = _degToRad(center.latitude);
final lon1 = _degToRad(center.longitude);
final lat2 = Math.asin(
Math.sin(lat1) * Math.cos(distanceRatio) +
Math.cos(lat1) * Math.sin(distanceRatio) * Math.cos(bearingRad),
);
final lon2 = lon1 +
Math.atan2(
Math.sin(bearingRad) * Math.sin(distanceRatio) * Math.cos(lat1),
Math.cos(distanceRatio) - Math.sin(lat1) * Math.sin(lat2),
);
points.add(LatLng(_radToDeg(lat2), _radToDeg(lon2)));
}
return points;
}