gpt4 book ai didi

java - 如何仅在 map 上的半径(圆)内显示标记?

转载 作者:行者123 更新时间:2023-11-30 10:16:56 25 4
gpt4 key购买 nike

所有标记都会根据来自 firebase 的数据纬度和经度显示在 map 上。我只想在 map 上显示圆圈内的标记,从当前位置开始的圆圈半径为 10 公里。

这就是我显示来自 Firebase 的所有标记的方式

 LatLng newlocation = new LatLng(dataSnapshot.child("latitude").getValue(Double.class),dataSnapshot.child("longitude").getValue(Double.class));
nama = new String(dataSnapshot.child("nama").getValue(String.class));
googleMap.addMarker(new MarkerOptions().position(newlocation).title(nama+"")));

这就是我在当前位置周围显示圆圈的方式:

LatLng latLng = new LatLng(latitude, longitude);
mMap.addCircle(new CircleOptions()
.center(latLng)
.radius(10000)
.strokeWidth(0f)
.fillColor(0x550000FF));

请向我询问更多详情!

最佳答案

使用此公式计算两个纬度和经度之间的距离此函数将返回以米为单位的距离

 double getDistance(double LAT1, double LONG1, double LAT2, double LONG2) {
double distance = 2 * 6371000 * Math.asin(Math.sqrt(Math.pow((Math.sin((LAT2 * (3.14159 / 180) - LAT1 * (3.14159 / 180)) / 2)), 2) + Math.cos(LAT2 * (3.14159 / 180)) * Math.cos(LAT1 * (3.14159 / 180)) * Math.sin(Math.pow(((LONG2 * (3.14159 / 180) - LONG1 * (3.14159 / 180)) / 2), 2))));
return distance;
}

您可以轻松实现与您的问题相关的逻辑部分

关于java - 如何仅在 map 上的半径(圆)内显示标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49839437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com