我在地图应用程序上工作,我从服务器获取地点的坐标,我正在调用API,它使用mMap.setOnCameraIdleListener
从服务器获取坐标。问题是,每次移动摄像机时都会调用API,并且如果用户只是稍微移动地图摄像机,则标记一次又一次地设置在同一位置。
现在,我想到检查可见区域上的标记数量,但我没有得到如何计算仅在可见区域上的标记数量。我使用下面的代码,但它只能告诉我一个特定的LatLng
点是否在可见区域可见。
public boolean isVisibleOnMap(LatLng latLng) {
VisibleRegion vr = mMap.getProjection().getVisibleRegion();
return vr.latLngBounds.contains(latLng);
}
我发布这个作为答案:
尝试使用for循环重复所有标记并使用vr.latLngBounds.contains(latLng);
检查这些标记是否包含在可见区域中。
if(mMap.getProjection().getVisibleRegion().latLngBounds.contains(currentMarker.getPosition())){
//Showing in VisibleRegion
} else {
//Not Showing
}