从谷歌地图边界获取纬度/经度值

时间:2019-12-09 11:22:12

标签: javascript google-maps

我有一个getBounds()谷歌地图API返回的绑定值-

config :my_app, MyAppWeb,
    url: [path: "/context"]

在谷歌搜索中,我发现我们可以使用getSouthWest()和getNorthEast()API来解码
以上信息以获得所需的坐标,但不幸的是它对我不起作用。
我得到以下输出-

**_.pe {pa: oe, ka: ke}       
ka: ke {g: -180, h: 180}          
pa: oe {g: -26.222936261748305, h: 72.98776122961861}       
__proto__: Object**             

关于如何解决此问题或任何其他可用于从边界获取坐标的方法的想法。

谢谢

1 个答案:

答案 0 :(得分:1)

getNorthEastgetSouthWest返回LatLng对象。要从这些对象获取原始值,可以在LatLng对象上使用以下函数来获取坐标:.lat()代表纬度,.lng()代表经度,或.toString()表示坐标的字符串。

另外,请注意,必须初始化地图,否则边界将不确定。

这是一个可行的例子。您可以忽略初始脚本错误,这是由于未使用API​​密钥引起的。只需拖动地图以查看坐标在控制台中出现的所有四个角:

let map;

function initialize() {
  let mapOptions = {
    zoom: 8,
    center: new google.maps.LatLng(-34.397, 150.644)
  };
  map = new google.maps.Map(document.getElementById('map-canvas'),
    mapOptions);

  map.addListener("dragend", function() {
    let bounds = map.getBounds();
    let ne = bounds.getNorthEast(); // Coords of the northeast corner
    let sw = bounds.getSouthWest(); // Coords of the southwest corner
    let nw = new google.maps.LatLng(ne.lat(), sw.lng()); // Coords of the NW corner
    let se = new google.maps.LatLng(sw.lat(), ne.lng()); // Coords of the SE corner
    console.log(ne.toString(), sw.toString(), nw.toString(), se.toString());
  })
}

google.maps.event.addDomListener(window, 'load', initialize);
#map-canvas {
  height: 500px;
  margin: 0px;
  padding: 0px;
  width: 500px;
}
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<div id="map-canvas"></div>