从当前缩放谷歌地图获取经度和纬度的边界

时间:2011-08-02 10:47:36

标签: google-maps-api-3 maps

我需要知道当前区域四角的长距离和纬度 如在此图像中

enter image description here

我试过这个但没有运气:

map.getBounds();

任何帮助?

3 个答案:

答案 0 :(得分:100)

你到了一半。您需要做的就是获取地图边界,然后提取(并正确使用)角落的坐标。

var bounds = map.getBounds();
var ne = bounds.getNorthEast(); // LatLng of the north-east corner
var sw = bounds.getSouthWest(); // LatLng of the south-west corder

你从上面的两个角落得到了西北角和东南角:

var nw = new google.maps.LatLng(ne.lat(), sw.lng());
var se = new google.maps.LatLng(sw.lat(), ne.lng());

请记住,地图必须已经初始化,否则地图边界为空或未定义。

如果您想要了解视口的每次更改,请使用idle事件监听器:

google.maps.event.addListener(map, 'idle', function(ev){
    // update the coordinates here
});

答案 1 :(得分:1)

在Android中,您可以通过这种方式找到角落LatLng(东北,西南), 在地图中,每次相机监听(意味着手势检测)时,它们都会被调用,

private var mapView: GoogleMap? = null

…………

    mapView?.setOnCameraMoveStartedListener { reasonCode ->
        if (reasonCode == GoogleMap.OnCameraMoveStartedListener.REASON_GESTURE) {
            val screenView: LatLngBounds =  mapView.getProjection().getVisibleRegion().latLngBounds
            var northeast=screenView.northeast
            var southwest=screenView.southwest
            var center=screenView.center
            
            
            Log.v("northeast LatLng","-:"+northeast)// LatLng of the north-east Screen
            Log.v("southwest LatLng","-:"+southwest)// LatLng of the south-west Screen
            Log.v("center LatLng","-:"+center)// LatLng of the center Screen
        }
    }

答案 2 :(得分:-1)

**this is mapbox zoom example**
 map.on('zoom', (el) => {
        map.getBounds();
    });