目前我似乎无法做到这一点,谷歌在这里讨论区域:
https://developers.google.com/maps/documentation/geocoding/#RegionCodes
它使用以下参数:
region:
这是我正在使用的代码:http://jsfiddle.net/spadez/Jfdbz/19/
我的问题是如何在我的脚本中将变量“ctryiso”传递给此参数?当我尝试时,没有任何变化,所以当ctryiso设置为美国并且我在伦敦输入时它仍然对英国伦敦进行地理编码。我听说它可能有点不可靠,但我仍然不认为我的实现是正确的。
答案 0 :(得分:2)
通常在哪里:
geocoder.geocode({
address: query
}
你应该像那样传递region
(如你所说):
geocoder.geocode({
address: query,
region: SOME_VARIABLE_WITH_REGION_CODE
}
它应该有用,虽然......似乎不是,而且有更多人遇到同样的问题。
(丑陋)解决方案是将其添加到地址,如下所示:
geocoder.geocode({
address: query + ', ' + SOME_VARIABLE_WITH_REGION_CODE
}
我刚刚测试了它并且它有效,但正如我所说 - 这不是“好”并不是正确的方法 - 它只是解决方法。
我们在这里可以看到: https://developers.google.com/maps/documentation/javascript/reference?hl=th-TH&csw=1#GeocoderRequest
您可以传递address
,bounds
,location
和region
。由于区域似乎不起作用,我首先尝试使用bounds
获取所需区域的坐标:
https://developers.google.com/maps/documentation/javascript/reference?hl=th-TH&csw=1#LatLngBounds
答案 1 :(得分:0)
您可以尝试将region参数添加为查询字符串 加载谷歌地图API,虽然默认情况下它应该是美国
https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false®ion=US
您还可以追加",USA"到您传递给地理编码器的地址 - 这很有效,但很难看。
您还可以返回所有结果并解析它们并仅显示 那些在感兴趣的国家。在大多数情况下,你会 无论如何必须这样做,因为有多个位置 在大多数国家/地区同名....这是首选方法 好像有人在美国伦敦打字,你会得到伦敦,肯塔基州和肯塔基州 伦敦,OH和用户/您仍然需要决定它是哪一个 他们想要......
答案 2 :(得分:0)
如另一个答案中所述,您可以在地理编码请求中加入region
来偏倚(不限制)结果。
然而,在这个特殊情况下,英国的伦敦仍被视为比美国伦敦更好的结果。因此,您可以使用Geocoding Service docs
中所述GeocoderComponentRestrictions
来限制(与偏见)结果
我已经通过要求结果在美国,显示了这种类型的过滤fiddle。
你会注意到结果是在美国伦敦,但是如果从小提琴代码中删除GeocoderComponentRestrictions
,那么第一个结果现在在伦敦,尽管区域存在偏差。
然而,注意偏差确实有效仍然很重要。例如,如果您现在将区域更改为“ES”并将地址更改为“Toledo”,则结果将在西班牙。如果删除偏差,则默认为Toledo USA。
tl; dr使用region
来偏见,GeocoderComponentRestrictions
来限制。
答案 3 :(得分:0)
function getLatLong(address){
var geo = new google.maps.Geocoder;
geo.geocode({'address':address},function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
return results[0].geometry.location;
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
I am unable to understand your exact need but, I hope it will help you and if not then please tell me your exact need in short way