我们有一个地址列表,并尝试使用服务器端脚本获取它们的坐标。
由于google map api的限制(每24小时2500次查询),我们转向bing map REST api。
但是当我们调用API时它没有给出坐标,而google map api返回正确的坐标。 请告诉我我做错了什么?
以下是示例电话
http://dev.virtualearth.net/REST/v1/Locations?query=A+Beka+Acadamdy,2303+Maravilla,Lompoc,CA,93436,&incl=queryParse&key=MY_API_KEY
如果我用地址中的%20替换所有内容,那么它仍然不会返回数据
http://dev.virtualearth.net/REST/v1/Locations?query=A%20Beka%20Acadamdy%202303%20Maravilla%20Lompoc%20CA%2093436&incl=queryParse&key=MY_API_KEY
另一个网址是
http://dev.virtualearth.net/REST/v1/Locations?query=103+Black+Men+of+the+Bay+Area+Community,3403+Malcolm+Avenue,Oakland,CA,94607-1407,&incl=queryParse&key=MY_API_KEY
我们也试过这个
https://msdn.microsoft.com/en-us/library/ff817004.aspx#sectionToggle6
但有时我们不了解这个国家,这就是为什么它无法正常工作。
答案 0 :(得分:0)
要改变的一些事情。首先,删除该位置的名称,您只需要街道地址。
所以地理编码“2303 Maravilla,Lompoc,CA,93436”将起作用。
其次,看起来你正在逃避查询值而不是编码它。转义不如编码好,会导致一些查询失败。例如,如果查询中包含“first& Main”,则转义它将不会转义&符号,这将使得后面的所有内容都成为新的URL参数,这可能会导致错误或意味着您的查询仅用于“第一次”。通过对其进行编码,&符号将更改为%26。这在最佳实践中有记录:https://msdn.microsoft.com/en-us/library/dn894107.aspx
通过对查询参数进行编码,您的地址将如下所示:
"2303%20Maravilla,%20Lompoc,%20CA,%2093436"