在我的应用程序中,我使用谷歌地图上的标记来显示地点。但是我一次标记了所有我不想做的可用位置。我想通过获取地图坐标来显示只适合屏幕的地方,如下所示:
我只想通过发送地图的坐标从源中获取此范围内可用的地点。我不确定是否应该从屏幕角落捕获所有 4 坐标?
谁能帮我弄清楚这个?
在我的应用程序中,我使用谷歌地图上的标记来显示地点。但是我一次标记了所有我不想做的可用位置。我想通过获取地图坐标来显示只适合屏幕的地方,如下所示:
我只想通过发送地图的坐标从源中获取此范围内可用的地点。我不确定是否应该从屏幕角落捕获所有 4 坐标?
谁能帮我弄清楚这个?
您可以使用以下方法获取它们:
yourMapView.getMap().getCameraPosition();
这将返回一个CameraPosition对象。摄像机的坐标由 field target给出,缩放级别由 field zoom给出。现在您应该能够计算屏幕角的近似坐标。
要随时获取地图的 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());
}
所以,这是一个老问题,但这是一个新的问题。
当地图启动(可见)时,您可以要求可见区域:
VisibleRegion vRegion = mMap.getProjection().getVisibleRegion();
LatLng upperLeft = vRegion.farLeft
LatLng lowerRight = vRegion.nearRight;
另一种方式,我们可以使用LatLngBounds。它返回2 个点:东北和西南。
VisibleRegion vRegion = mMap.getProjection().getVisibleRegion();
纬度西南 = vRegion.latLngBounds.southwest;
纬度东北= vRegion.latLngBounds.northeast;
https://developers.google.com/maps/documentation/android-api/views