有没有一种标准格式可以提供地址字符串给谷歌地理编码API以获得最精确的地图结果。
例如,以下查询未给出正确的结果。
http://maps.googleapis.com/maps/api/geocode/xml?address=bloom,Bloomfield,CT,06002,USA&sensor=false
谢谢
Mandeep
有没有一种标准格式可以提供地址字符串给谷歌地理编码API以获得最精确的地图结果。
例如,以下查询未给出正确的结果。
http://maps.googleapis.com/maps/api/geocode/xml?address=bloom,Bloomfield,CT,06002,USA&sensor=false
谢谢
Mandeep
我认为建议的格式是:
House Number, Street Direction, Street Name, Street Suffix, City, State, Zip, Country
很明显,你提供的信息越少,结果就越不具体。
在你的示例中,地理编码器正在搜索名为“ bloom”的街道,而在OH州有类似的匹配项,而不是在CT州。从查询中删除“ bloom”,然后进行搜索会返回CT州的Bloomfield。
谷歌地址搜索的定义:
地址 - 您想要进行地理编码的街道地址,应按照所涉国家或地区的国家邮政服务使用的格式填写。应避免提供其他地址元素,例如商业名称、单元号、楼层号等。
https://developers.google.com/maps/documentation/geocoding/#geocoding
如何格式化我的地理编码查询以最大化成功请求的数量?
地理编码器旨在将街道地址映射到地理坐标。因此,我们建议您根据以下准则格式化地理编码器请求,以增加成功查询的可能性:
var request = require('request');
var url = "https://maps.googleapis.com/maps/api/geocode/json?" +
"address=Herengracht 180" +
"&components=postal_code:1016 BR|country:NL" +
"&sensor=false";
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
else {
console.log('error', error);
}
});
不需要避免公寓单位。
https://maps.googleapis.com/maps/api/geocode/xml?address=14202+N+42nd+St+Unit+301+33613
"Apt", "Room"和"Suite"同样有效。它们都返回301作为子单位,并在"formatted_address"中显示为"#301"。我发现官方的国家代码如"US"、"DE"、"FR"等并不太好用。将它们替换为完整的国家名称对我来说效果更好。
我没有找到任何说明这一点的来源。