【发布时间】:2011-10-28 19:34:28
【问题描述】:
我正在为我的公司开发一个运输系统,用户在该系统中输入(连同一堆其他信息)需要运送物品的目的地。我们要迁移的系统只是将此信息用作静态文本,因此人们会输入速记地址,例如“Alsip 60801”。
我最初的想法是这种速记文本可以完美地与 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 参数。这会在搜索时为我范围内的所有地址提供优惠待遇。
【问题讨论】:
-
也许你留下了国旗?
-
@Jitamaro 试过了。更新了问题以包含该信息。
标签: google-maps search geocode shorthand