最近的项目需要做一些地址编码、转换、测距的工作,考虑到各大地图都有API,就想着直接调用了,本文主要针对高德地图的API。
这里先插一些基础知识,就是有关地图坐标系的问题,考虑到已经有很多文章提到了,这里只给出其中一篇的链接:
互联网地图坐标系简介及转换(地理坐标系)
但高德地图API已经具有转换的接口,所以直接调用也可以。
下面入正题,python作为一种脚本语言,可以以很简单的面向过程的方式完成调用web服务API的工作,可是,考虑到代码的复用性,已经后期我们的系统不断丰满,我还是提倡以类的方式去实现调用的功能。
首先,是web服务api调用的一个比较有用的拼接参数的方法:
def join_parameters(parameters_dict, symbol_str='&'):
assert isinstance(parameters_dict, dict)
return symbol_str.join(key + '=' + value for key, value in parameters_dict.items())
该方法主要是调用url常用的‘&’符号把参数字典里的key=value连接起来,该方法抽象出来后,编写后面的url路径会比较方便。
接着,便是基本的caller类了,负责调用api: