Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取谷歌地图API地图的宽度(以公里为单位)_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 获取谷歌地图API地图的宽度(以公里为单位)

Javascript 获取谷歌地图API地图的宽度(以公里为单位),javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我怎么才能在谷歌地图上获得当前可见区域的宽度,我已经阅读了很多文档,但没有成功?我需要得到以公里为单位的可见区域的实际宽度。我认为getBounds()是您要寻找的 var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); google.maps.event.addListener(map, 'idle', function(event) { var

我怎么才能在谷歌地图上获得当前可见区域的宽度,我已经阅读了很多文档,但没有成功?我需要得到以公里为单位的可见区域的实际宽度。

我认为getBounds()是您要寻找的

var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);

    google.maps.event.addListener(map, 'idle', function(event) {
        var bounds = map.getBounds();
您将收到一个LatLngBounds对象(供参考)

其中包括Norstrate和西南LatLng点。使用这些,使用这个公式应该很容易得到以公里为单位的宽度。可以从LatLng点中创建2对,以创建西北和东北对,并计算它们之间的距离

var R = 6371000; // metres
var φ1 = lat1.toRadians();
var φ2 = lat2.toRadians();
var Δφ = (lat2-lat1).toRadians();
var Δλ = (lon2-lon1).toRadians();

var a = Math.sin(Δφ/2) * Math.sin(Δφ/2) +
    Math.cos(φ1) * Math.cos(φ2) *
    Math.sin(Δλ/2) * Math.sin(Δλ/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));

var d = R * c;

将其视为参考()。

当然,值得记住的是,地图北边的宽度(以公里为单位)通常与地图南边的宽度不同。(一个例外是中间有赤道的地图)我们并不真正知道OP的要求:期望的测量是地图的最小宽度,或者最大值,还是地图中间的宽度,或者其他的数字?