gpt4 book ai didi

java - Android - 在 map 中仅显示确定区域中包含的标记

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:34 24 4
gpt4 key购买 nike

我的应用程序有一张 map 。在这张 map 中,我在设备的当前位置放置了一个标记。我还在标记周围添加了一个圆圈,如下所示:

    Circle circle = mMap.addCircle(new CircleOptions()
.center(latLng)
.radius(400) //The radius of the circle, specified in meters. It should be zero or greater.
.strokeColor(Color.rgb(0, 136, 255))
.fillColor(Color.argb(20, 0, 136, 255)));

结果是这样的:
here's an example of the result !

我有一个数据库,其中包含一些以纬度和经度为特征的位置。

我会在 map 中设置标记,仅针对位于先前添加的圆圈内的位置。
我如何了解该区域中包含哪些?

请帮帮我,谢谢!

最佳答案

您可以添加所有标记,首先使它们不可见,然后计算圆心和标记之间的距离,使给定距离内的标记可见:

private List<Marker> markers = new ArrayList<>();

// ...

private void drawMap(LatLng latLng, List<LatLng> positions) {
for (LatLng position : positions) {
Marker marker = mMap.addMarker(
new MarkerOptions()
.position(position)
.visible(false)); // Invisible for now
markers.add(marker);
}

//Draw your circle
Circle circle = mMap.addCircle(new CircleOptions()
.center(latLng)
.radius(400)
.strokeColor(Color.rgb(0, 136, 255))
.fillColor(Color.argb(20, 0, 136, 255)));

for (Marker marker : markers) {
if (SphericalUtil.computeDistanceBetween(latLng, marker.getPosition()) < 400) {
marker.setVisible(true);
}
}
}

请注意,我正在使用 Google Maps API Utility Library 中的 SphericalUtil.computeDistanceBetween 方法

关于java - Android - 在 map 中仅显示确定区域中包含的标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37737426/

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