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

时间:2015-07-30 13:52:14

标签: android google-maps google-maps-markers google-maps-android-api-2

我一直试图为我的应用程序设计一个方法,以指示地图上有哪些标记位于当前视图/屏幕/界限/ VisibleRegion之外。

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

我想过使用

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


但这只能告诉我当前的visibleRegion中有哪些标记。 任何帮助都会得到满足,谢谢。

1 个答案:

答案 0 :(得分:3)

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

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

在此之后你可以检查屏幕外是否有标记

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