Android Google Maps V2-指示屏幕上当前可视区域之外是否有标记

Android Google Maps V2-指示屏幕上当前可视区域之外是否有标记,android,google-maps,google-maps-markers,google-maps-android-api-2,Android,Google Maps,Google Maps Markers,Google Maps Android Api 2,我一直在尝试为我的应用程序设计一种方法,以指示地图上何时存在当前视图/屏幕/绑定/可见区域之外的标记。 例如,如果地图上当前有5个标记,但用户被放大到地图上看不到任何标记的部分,那么我希望能够向用户标记地图上有他们看不到的标记或沿着这些线的标记(如果能够指示标记从当前位置指向哪个方向就好了)。 我想用 LatLngBounds currentScreen = googleMap.getProjection() .getVisibleRegion().latLngBounds; 但这只

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

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

我想用

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

但这只能告诉我哪些标记位于当前可见区域。

感谢您的帮助。

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

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

请参阅Projection.toScreenLocationokay,这样我就可以使用Projection并将当前屏幕上显示的标记数与地图上的标记总数进行比较了?@cbrook您尝试过我的答案了吗?我还没有尝试过,但它看起来对我有用:)谢谢。我已经把我所有的标记放入标记数组中,所以它应该可以工作。一旦我试了一下,我就接受这个答案。
LatLngBounds currentScreen = mMap.getProjection().getVisibleRegion().latLngBounds;
for(Marker marker : markers) {
    if(currentScreen.contains(marker.getPosition())) {
        // marker inside visible region
    } else {
        // marker outside visible region
    }
}