如何在谷歌地图中查找纬度 lng 是否在某个半径圈内



我有示例条目

  • 纬度: 12.962899
  • 液化天然气77.622330

我在地图上画了一个半径为10000的圆

Circle circle = map.addCircle(new CircleOptions()
.center(new LatLng(lat, lng))
.radius(10000)
.strokeColor(Color.RED)
.fillColor(Color.BLUE));

我想做的是:如果给我一个新的latlng值,我想找出新位置是否在圆半径内。

如何实现这一点

您可以使用此函数找出 2 个经度长之间的距离

private float calculateLocationDifference(LatLng lastLocation, LatLng firstLocation) {
float[] dist = new float[1];
Location.distanceBetween(lastLocation.latitude, lastLocation.longitude, firstLocation.latitude, firstLocation.longitude, dist);
return dist[0];
}

传递圆的中心点和新点。 如果距离<10000,则位置在圆中

您可以将其视为坐标系,假设您将第一个点放在地图上。

您正在添加一个新点,并希望检查它是否在您的圆内,因为您的圆的半径为10000您可以比较点之间的距离(新旧(,如果这个距离> 10000则您的新点不在圆内。

如果您使用的是谷歌地图,则可以使用距离方法查找距离:

Location.distanceBetween(FirstLatitude, FirstLongitude, SecondLatitude, SecondLongitude, results);

您可以使用以下函数: 它将返回布尔值 true 或 false 点 = {纬度: 12.962899, LNG: 77.622330} 或者您可以从点击事件中获得积分

function pointInCircle(point, radius, center) {
return (google.maps.geometry.spherical.computeDistanceBetween(point, center) <= radius)
}

相关内容

  • 没有找到相关文章

最新更新