我正在为我公司的送货系统工作,用户输入(以及其他一些信息)目的地需要运送某物。我们正在迁移的系统仅将这些信息用作静态文本,因此用户可以输入速记地址,例如“Alsip 60801”。Google Maps API:正在搜索
我最初的想法是,这种简写文本可以与Google Maps API完美配合,因为我可以在maps.google.com中输入简写的内容,并且它通常可以工作。
所以,我写了一些代码来运行geocoding他们的速记输入。令我不幸意外的是,从地理编码搜索返回的结果与从maps.google.com返回的结果大不相同。
例如,当我在maps.google.com上搜索“Alsip 60801”时,我得到Alsip, IL 60801.这是正确的。但是当我使用Google Maps API进行搜索时,我获得了some Alsip up in Canada.
我应该使用Google Maps API的另一个搜索功能吗?或者我失踪的某种标志?
以供参考,这是我的代码的短版:
var geocode = new google.maps.Geocoder();
geocode.geocode({'address': 'Alsip 60801' }, function(results, status) {
console.log(results[0].geometry.location);
//Outputs the LatLng of a Canada address
});
编辑1:我忘了提,我也尝试在地址解析请求中设置的区域。我把它给了我们,并得到了相同的结果。
更新 - 已回复:我标记@ Jitimaro的答案是正确的,因为将国家代码粘贴到结果的末尾似乎有效。我不确定这是否会适用于各种输入(很难预测速记地址格式),但现在看起来工作正常。
但是,我实际上正在处理这个不同的方式。实际上,我在地理编码请求的末尾提供了一个LatLngBounds参数,而不是在地址末尾添加国家代码。这样可以在我的范围内为所有地址提供优惠待遇,因为它正在搜索。
也许你的国旗离开了吗? – Bytemain
@Jitamaro试过了。更新了问题以包含该位信息。 – jwegner