【发布时间】:2018-09-25 20:36:32
【问题描述】:
我创建了一个使用 Google 地理编码器 API 执行反向地理定位的函数。它从浏览器的本机功能中提取纬度/经度并将它们发送给谷歌。该函数的目的是获取用户的大致街道地址(即123 Fake Street)。不需要城市/直辖市、省/州、国家和邮政编码,只需要街道地址。
function geoSuccess(pos) {
Geocoder = new google.maps.Geocoder;
Geocoder.geocode({location: {lat:pos.coords.latitude,lng:pos.coords.longitude}}, function(r, s) {
if (s === 'OK') {
var found = false,
x = 0;
do {
if (r[x].address_components[0].types.indexOf('route') !== -1) {
found = true;
}
x++;
} while(!found && x < r.length);
alert(r[x-1].address_components[0].long_name);
}
});
}
根据函数的工作原理,它会扫描生成的 JSON 以查找路由。但是,移动设备的准确性与台式机不同,因此存在差异。尽管搜索了route,但移动设备经常会返回错误的数据(最近的高速公路)。
【问题讨论】:
-
请提供一个minimal reproducible example 来证明您的问题。
-
如果您正在寻找建筑物的街道地址,您可能不需要输入“路线”[路线表示命名路线(例如“US 101”)],您可能需要street_address (或者可能是前提)
-
出于代码的目的,street_address 返回的数据过多,因此使用了路由。
标签: javascript google-maps geocoding