0

我正在使用谷歌地图和地理编码 API 在用户输入邮政编码后检索经纬度/经度,但我想将邮政编码限制在该用户所在的国家/地区,这样我就不会得到多个结果。

有没有办法从客户端可靠地确定访问者的原籍国,可能使用 jquery 或可能以某种方式解码用户代理?

我的电话将结束,看起来像这样:

var country = ???
var postcode = document.getElementById('postcode').value + ', ' + country;

var geocoder = new google.maps.Geocoder();         
geocoder.geocode({ 'address': postcode }, function (results, status) {          
   if (status == google.maps.GeocoderStatus.OK) {  
       ...
   }
});

有什么想法吗?

4

2 回答 2

1

您可以使用访问者 IP 地址在 GeoIP 表中查找他的来源。周围有各种桌子,例如来自 MaxMind 的桌子

请注意,如果用户位于代理服务器后面或者您无法获取 IP,这可能会失败。除此之外,它应该是一种非常可靠的方法,当然取决于您的 GeoIP 表。

于 2012-12-17T20:29:42.080 回答
1

为了不依赖第三方的好处,您可以使用Google 的 Loader获取客户端的位置。这是一个很好的使用示例,加载 Google Maps API 和 ClientLocation。

于 2012-12-17T23:22:46.223 回答