检查纬度和经度是否在圆圈内
2022-09-01 06:02:58
请看下图:
我想知道的是:
- 如何在给定经纬度和距离(10公里)时创建区域(圆)
- 如何检查(计算)纬度和经度是否在区域内或区域外
我希望你能给我Java的代码示例,或者专门用于Android的Google Maps API V2代码示例。
请看下图:
我想知道的是:
我希望你能给我Java的代码示例,或者专门用于Android的Google Maps API V2代码示例。
你基本上需要的是地图上两点之间的距离:
float[] results = new float[1];
Location.distanceBetween(centerLatitude, centerLongitude, testLatitude, testLongitude, results);
float distanceInMeters = results[0];
boolean isWithin10km = distanceInMeters < 10000;
如果已有对象:Location
Location center;
Location test;
float distanceInMeters = center.distanceTo(test);
boolean isWithin10km = distanceInMeters < 10000;
以下是所使用的API的有趣部分:https://developer.android.com/reference/android/location/Location.html
检查这个:
private boolean isMarkerOutsideCircle(LatLng centerLatLng, LatLng draggedLatLng, double radius) {
float[] distances = new float[1];
Location.distanceBetween(centerLatLng.latitude,
centerLatLng.longitude,
draggedLatLng.latitude,
draggedLatLng.longitude, distances);
return radius < distances[0];
}