如果我们熟悉Excel的公式,可以自己简单编辑一下就可以实现地址-坐标的相互转换。
自定义地址解析公式的核心是整合excel的web函数和高德地图的webservice服务。
有几项准备工作是必要的:
1.申请高德地图的key
Forrest:KB08:如何申请高德地图的key?zhuanlan.zhihu.com2.使用高德的webservice自己拼一个webservice的地址,例如
https://restapi.amap.com/v3/geocode/geo?address=北京市朝阳区阜通东大街6号&output=XML&key=<key>
<>里面的key是步骤1中申请的,那个<>实际填写的时候不要有。
注意:output输出的结果务必是XML,别的格式Excel内置的公式处理不了。
地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图APIlbs.amap.com在Excel的公式里面,找到WEBSERVICE公式
把步骤2的地址填进去,没有申请key的情况下,结果如下
填入申请的key,再操作一遍,结果如下
接下来我们只需想办法,把经纬度/或者其他解析结果取出来的就行了。
在Excel的公式里面,找到FILTERXML公式
FILTERXML公式的第二个参数,如果你要取经纬度,就写//location,如果取城市,就写//city
本例取经纬度,结果如下
我们把公式整理一下:
=FILTERXML(WEBSERVICE("https://restapi.amap.com/v3/geocode/geo?address="&A1&"&output=XML&key=key"),"//location")
这个公式里面只有一个变量,A1,即提供的地址内容。
不愿意研究的可以直接拿走,复制粘贴,把A1替换了,写上自己的key即可。
简易Excel 地址解析公式的缺陷:
1.高德或者百度开放的webservice每天都有额度限制,比如高德,6000次/天,并发100.
2.Excel的两个内置的web公式,是从Excel2013开始加入的,之前的版本没有。
3.有大量的地址需要解析的时候,拖动这个公式会造成Excel假死,比较耗时间。
注:DataMap插件早期的公式也是这样实现的,但没法兼容Office2010(没有那两个内置的公式),只好改用其他方式实现了。