谷歌地理编码API为我的服务器和我的网络浏览器提供不同的结果


Google Geocoding API giving different results to my server and my web browser

我正在使用Google地理编码API来获取我网站上不同位置搜索的纬度/液化天然气坐标。问题是,对于伦敦的地区(它可能不仅限于伦敦,这只是我们大多数用户群所在的地方),例如"滑铁卢",地理编码 API 向我的服务器返回的结果与我直接将 url 放入浏览器时的结果不同。这是为滑铁卢生成的网址:

http://maps.googleapis.com/maps/api/geocode/xml?address=waterloo,%20london,%20england&bounds=48.8,-11.2|60.9,1.9&sensor=false&region=uk

如果我将其粘贴到浏览器中,我会得到滑铁卢的正确区域("滑铁卢,伦敦兰贝斯自治市,伦敦SE1,英国")。但是,当我的服务器从此 url 检索结果时,它获得的地址为"2C 滑铁卢路,伦敦,大伦敦 NW2 7UA,英国",距离滑铁卢数英里。(它也只返回一个结果。

我的服务器位于英国,在IP上执行GeoIP证实了这一点。为什么谷歌会向我的服务器返回不同的结果?

(顺便说一句,我的服务器正在使用PHP5 simplexml_load_file()来检索结果)

**我不明白为什么这个问题被标记为另一个问题的副本。这是一个假定的副本的问题丝毫没有回答我的问题,我的问题与企业(仅邮政地区)无关,也没有解释为什么我的服务器与我的 PC 区别对待。

您正在经历一种称为区域偏差的事情:https://developers.google.com/maps/documentation/geocoding/#RegionCodes

传递一个region=uk GET参数,你的结果应该在任何地方都是相同的(即为英国量身定制)。