gpt4 book ai didi

Android 获取未聚类的marker

转载 作者:太空狗 更新时间:2023-10-29 14:06:44 31 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,我正在使用 Google Maps Android API Utility Library .

更具体地说,我正在使用该库的集群部分。现在回答我的问题:

我对 map 上显示但目前未聚集的标记感兴趣。我尝试过不同的东西,但无法全神贯注。这种工作的方法是将所有呈现的标记项保存在数组列表中,然后将标记位置与屏幕上 map 的 LatLng 边界进行比较,如果标记在屏幕边界内,则标记信息将添加到不同的数组列表中稍后显示在 ListView 中。问题是当我缩小时,标记仍在 renderedPersonItems 数组中,并且即使这些标记现在已聚集,也会显示在 ListView 中。我无法清除 renderedPersonItems 数组,因为标记在一个生命周期中只呈现一次。所以我正在寻找不同的解决方案。这是我到目前为止得到的:

DefaultClusterRenderer 中的代码:

@Override
protected void onBeforeClusterItemRendered(PersonItem personItem, MarkerOptions markerOptions){
markerOptions.title(personItem.personName);

if(!renderedPersonItems.contains(personItem)){
renderedPersonItems.add(personItem);
}
}

主要 Activity 中的代码:

LatLngBounds personOnScreenBounds = googleMap.getProjection().getVisibleRegion().latLngBounds;

for(PersonItem person : clusterPersonRenderer.getRenderedPersonItems()){
if(PersonsOnScreenBounds.contains(person.getPosition())){
personMarksOnScreen.add(getPersonObjectWithId(person.personId));
}
}

提前致谢!

最佳答案

我可以向您推荐另一个很酷的 android-map 库。 Android map 扩展 https://github.com/mg6maciej/android-maps-extensions

我在我的应用程序中使用它,它看起来不错。在您的应用中重新实现它可能并不容易,但您可以尝试。

要解决你的问题,你可以做这样的事情:

List<Marker> markers = mMap.getDisplayedMarkers();
for (Marker marker : markers) {
if(!marker.isCluster()) {
//
}
}

关于Android 获取未聚类的marker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31748401/

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