Android Google Maps V2-指示屏幕上当前VisibleRegion之外是否有标记

Pau*_*der 2 android google-maps google-maps-markers google-maps-android-api-2

我一直在尝试为我的应用程序设计一种方法,以指示何时地图上的标记不在当前视图/屏幕/绑定/ VisibleRegion之外。

例如,如果地图上当前有5个标记,但是用户被放大到地图上他们看不到任何标记的部分,那么我希望能够向用户标记有标记在他们看不见的地图上或沿这些线的东西(最好能指示标记从当前位置开始的方向)。

我想到了

LatLngBounds currentScreen = googleMap.getProjection()
    .getVisibleRegion().latLngBounds;
Run Code Online (Sandbox Code Playgroud)


但这只能告诉我当前visibleRegion中的标记。
任何帮助将不胜感激,谢谢。

Sta*_*hin 7

首先,您应该将所有标记保存在某个地方。例如,在列表中

List<Marker> markers = new ArrayList<>();
Marker marker = mMap.addMarker(new MarkerOptions().position(new LatLng(55.123, 36.456)));
markers.add(marker);
Run Code Online (Sandbox Code Playgroud)

之后,您可以检查屏幕外是否有标记

LatLngBounds currentScreen = mMap.getProjection().getVisibleRegion().latLngBounds;
for(Marker marker : markers) {
    if(currentScreen.contains(marker.getPosition())) {
        // marker inside visible region
    } else {
        // marker outside visible region
    }
}
Run Code Online (Sandbox Code Playgroud)