Android - 如何从地图视图中获取地图坐标

时间:2013-02-04 09:38:33

标签: android latitude-longitude android-maps-v2

在我的应用程序中,我在谷歌地图上使用标记显示地点。但是我正在标记所有可用的地方,我不想这样做。我想通过获取地图坐标来显示仅适合屏幕的位置,如下所示:

enter image description here

我只想通过发送地图的坐标来从源中获取此范围内可用的地点。我不确定是否应该从屏幕的角落捕获所有4个坐标?

任何人都可以帮我解决这个问题吗?

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;