起因
接触googlemaps,是源自于同学所托。嗯,一个还在深造的同学。他想得到这样的效果:
1 从google提供的map-api,获取两个坐标之间的多条路径,并仅筛选出这些路径中,距离最近的和距离最远的。
2 这两条路径,需要把路径指示中,每个分段路径的起始坐标,耗时和距离返回。
3 需要保存数据到txt文件。嗯,没选择数据库,让我比较疑惑。
大致的数据可以形如一个字典:
初步接触googlemaps库
googlemaps库,是通过访问google map服务器提供的接口,采用requests库,发起get或者post请求,提供相关参数,来获取路线信息。
所以,对这个库的使用要求是,能够解决网络问题,请求能够到达google map所在的服务器,嗯,也就是说,需要能够海外代理或者,梯子。从同学嘱托我这个东西到完成,差不多4天时间,而网络问题,差不多耗尽了3天半。主要原因是,在同学已经提供了梯子和账号的情况下,未能正确配置本地信息。pac模式和全局代理模式。
使用googlemaps 的directions api
在googlemaps的github上,有使用教程,如何初始化一个client,然后如何调用库里面封装好的api。而想要实现获取多条路径,则需要使用directions这个api。但是在文档中,并没有详细的,关于如何使用directions的说明。只能查看源码。好在,源码对这个api,需要的参数是做了详细说明的,大致包括,起点,终点,是否多路径返回,出发时间,想到达的时间,语言设置等。如下:
如何构思
我准备完成一个python文件,相当于在googlemaps上再次封装,让他能够简单使用。向外提供一个函数,也就是api,需要的参数是起始的坐标,返回加工好的数据。同时默认一个参数,用于以坐标为文件名,存放数据。
此接口,将调用本文件中的多个私有方法:
1 获取路径信息
2 筛选出最快和最慢的路径
3 将路径信息转换结构,剔除不需要返回的信息
4 保存到指定路径下
5 统一输出,如果后面需要,用logging替代print
领取专属 10元无门槛券
私享最新 技术干货