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

Get width in kilometers of Google Maps API map

本文关键字:谷歌地图 API 地图 为单位 取宽度 获取      更新时间:2023-09-26

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

我认为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 对象(供参考 https://developers.google.com/maps/documentation/javascript/reference#LatLngBounds(。

这包含NortEase和SouthWest 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;

将此作为参考(http://www.movable-type.co.uk/scripts/latlong.html(。