在我的应用程序中,我在谷歌地图上使用标记显示地点。但是我正在标记所有可用的地方,我不想这样做。我想通过获取地图坐标来显示仅适合屏幕的位置,如下所示:
我只想通过发送地图的坐标来从源中获取此范围内可用的地点。我不确定是否应该从屏幕的角落捕获所有4个坐标?
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:4)
您可以使用此方法获取这些:
yourMapView.getMap().getCameraPosition();
这将返回CameraPosition个对象。相机的坐标由字段目标给出,缩放级别由字段缩放给出。现在,您应该能够计算屏幕角的近似坐标。
答案 1 :(得分:1)
要随时获取地图的TopLeft和BottomRight坐标,请使用以下内容:
public GeoPoint getCurrentTL(MapView map){
Projection pr = map.getProjection();
return pr.fromPixels(0, 0);
}
public GeoPoint getCurrentBR(MapView map){
Projection pr = map.getProjection();
return pr.fromPixels(map.getWidth(), map.getHeight());
}
答案 2 :(得分:1)
另一方面,我们可以使用 LatLngBounds 。它返回 2点:东北和西南 。
VisibleRegion vRegion = mMap.getProjection()。getVisibleRegion();
LatLng southwest = vRegion.latLngBounds.southwest;
LatLng northeast = vRegion.latLngBounds.northeast;
https://developers.google.com/maps/documentation/android-api/views
答案 3 :(得分:0)
所以,这是一个古老的问题,但这是对这个问题的新观点。
当地图显示(可见)时,您可以通过以下方式询问可见区域:
VisibleRegion vRegion = mMap.getProjection().getVisibleRegion();
LatLng upperLeft = vRegion.farLeft
LatLng lowerRight = vRegion.nearRight;