2015-10-10 23 views
1

得到坐标我们有地址的列表,并试图获得使用服务器端的脚本将它们的坐标。无法从冰地图REST API

由于谷歌地图API(每24小时可查询2500)的限制,我们搬到冰地图REST API。

当我们调用API的不给的坐标,而谷歌地图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 

另一个URL是

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

有几件事要改变。首先,删除该位置的名称,您只需要街道地址。

所以地理编码 “2303 MARAVILLA,隆波克,CA,93436” 将起作用。

其次,它看起来像你的转义查询的价值,而不是对其进行编码。转义不如编码好,会导致一些查询失败。例如,如果一个查询中有“首要的& Main”,转义它不会逃避和号,这会使得所有的东西都变成一个新的URL参数,这可能会导致错误或意味着您的查询只是为了“第一个”。通过对它进行编码,&符号将被更改为%26。这是在最佳实践这里记录:https://msdn.microsoft.com/en-us/library/dn894107.aspx

通过编码查询参数的地址将是这样的:

"2303%20Maravilla,%20Lompoc,%20CA,%2093436"