谷歌地图自动填充:如何获得lat / lng?

时间:2012-06-09 01:16:03

标签: google-maps google-maps-api-3

我正在使用Google地图的自动填充功能进行地理编码。它似乎返回了很多数据,但不是lat / lng。有没有办法获得这些信息?我想把它传回我的后端应用程序进行进一步处理。

3 个答案:

答案 0 :(得分:44)

几何对象的原型中存在名为lat()和lng()的方法。因此,要获取值,只需使用以下内容:

var place = autocomplete.getPlace();

var lat = place.geometry.location.lat(),
    lng = place.geometry.location.lng();

// Then do whatever you want with them

console.log(lat);
console.log(lng);

console.warn('Warning: I didn\'t test this code!');

答案 1 :(得分:28)

好的,我不熟悉地方或自动填充。但看起来你正在寻找的是

autocomplete.getPlace().geometry.location

为了演示我带了this example并添加上面的行来创建this JSFiddle,您可以在其中输入地名,当它被选中时,会创建一个带有LatLng的infowindow。

特别是它会监听用户的选择,然后刷新信息窗口。

google.maps.event.addListener(autocomplete, 'place_changed', function() {
      infowindow.close();
      var place = autocomplete.getPlace();
       ...
      infowindow.setContent('<div><strong>' + place.name + 
        '</strong><br>' + address + "<br>" + place.geometry.location);

答案 2 :(得分:2)

其他答案缺少关键组成部分。调用'geometry'时需要包括setFields。请注意,更多字段可能会花费更多。

例如:

// Avoid paying for data that you don't need by restricting the set of
// place fields that are returned to just the address components.
autocomplete.setFields(['address_component', 'geometry']);

See docs