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