我正在使用谷歌地图的自动完成功能进行地理编码。它似乎返回了很多数据,但不是 lat/lng。有没有办法获取这些信息?我想将它传回我的后端应用程序以进行进一步处理。
问问题
58041 次
3 回答
62
几何对象的原型中存在称为 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!');
于 2014-11-06T03:46:11.283 回答
36
好的,我不熟悉地点或自动完成功能。但看起来你正在寻找的是
autocomplete.getPlace().geometry.location
为了演示,我采用了这个示例并添加了上面的行来创建这个 JSFiddle,您可以在其中输入地名,当它被选中时,会创建一个带有 LatLng 的信息窗口。
特别是它监听用户的选择,然后刷新信息窗口。
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);
于 2012-06-09T02:19:28.580 回答
21
其他答案缺少一个关键组成部分。您需要'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']);
于 2019-09-07T20:10:25.940 回答