Google Map Geocoding API在不同平台上提供不同的结果

时间:2017-01-20 13:36:28

标签: c# unity3d google-maps-api-3 geocoding

我正在开发一个需要为给定地址查找经度和经度值的项目。我通过我的应用程序(unity3d)上的输入文本创建了一个正确的链接(如https://maps.googleapis.com/maps/api/geocode/xml?new_forward_geocoder=true&sensor=false&address=new%20york%20usa)。它工作正常。但是,如果我复制相同的链接并将其粘贴到浏览器,它会给我不同的“lat” - “long”值,不同的“formatted_address”值。这怎么可能呢?提前谢谢。

PS:顺便说一句,我也有API Key,但我没有写这个链接。

1 个答案:

答案 0 :(得分:0)

Google正在使用您的浏览器发送给它的标头来检测您何时从已知的Web浏览器发出请求。看起来他们会根据此回复Google地图请求。

大多数情况下,这是通过选中“ User-Agent ”标题来完成的。其他时候,也可以通过检查“ User-Agent ”和其他标题来完成。

Here是使用Unity中的自定义“ User-Agent ”标头进行GET或POST的完整解决方案。

请记住,如果这不起作用,您只需安装Wireshark,然后使用您问题中的链接向Google地图服务器发出请求。 Wireshark将为您提供所有标题。现在,尝试发送所有这些内容,直到找出服务器使用哪些内容进行检查