Python脚本调用腾讯地图接口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/whgyxy/article/details/88721518

Python脚本调用腾讯地图接口

腾讯地图提供的有公开的webServerAPI,BAT在很多领域三分天下,地图领域也是如此。腾讯地图在几年以前还是烂的掉渣,自从腾讯的很多生态合作伙伴使用了之后,现状大为改观,现在接口是越来越规范,越来越强大和丰富了,毕竟也是腾讯花了大力气去优化和提高的。据说腾讯地图连腾讯内部很多人都觉得做的不好,经常吐槽,与其他几家相比,功能、性能、准确度多个方面处于下风,现在得益于生态伙伴的使用反馈,腾讯地图在不断的升级。现在与腾讯云绑在一起,看来是要搞大事情,虽然现在做的依然比较差,但是看好腾讯地图以后的发展,毕竟产业互联网现阶段很多领域都会用到地图的能力。

腾讯地图公开api地址 https://lbs.qq.com/webservice_v1/index.html

我们尝试使用python脚本去访问,举一个简单的例子,输入了一个中文地址,想知道这个地址距离某个地点(商场中心、体育馆、火车站、机场)等的距离,那么必须知道地址对应的经纬度数据,这就要查询地图提供的接口了。好,现在输入是一个中文地址,输出是这个地址的经纬度数据,来

step 1

在腾讯地图官网申请一个开发者密钥secKey,如果是个人开发者很好申请,如果是企业的话,需要提交一个使用情况的申请

step 2

我们选择一个请求方式,Get请求或者Post请求,这两者都可以访问

Get请求方式

# -*- encoding=utf-8 -*-
import time
import requests

developer_key = 'your key'  // 这里为你申请的开发者key


# Get请求测试
def address_coordinate_get_request(location):
    parameters = {'location': location, 'key': developer_key}
    parameters = {}
    base = 'http://apis.map.qq.com/ws/geocoder/v1/?'  # 地址解析,地址转坐标
    base = "http://apis.map.qq.com/ws/place/v1/search?" + \
           "boundary=region(武汉,0)&keyword=酒店&page_size=20&page_index=1&orderby=_distance&key=" + \
           developer_key  # 腾讯地图地点搜索
    response = requests.get(base, parameters)
    response.encoding = 'utf-8'
    answer = response.json()
    print(answer['data'][0]['category'])

Post请求方式

# -*- encoding=utf-8 -*-
import time
import requests

developer_key = 'your key'  // 这里为你申请的开发者key
# Post请求测试
def address_coordinate_post_request(address):
    parameters = {'address': address, 'key': developer_key}
    base = "http://apis.map.qq.com/ws/geocoder/v1/?"
    response = requests.get(base, parameters)
    answer = response.json()
    print(answer['result']['location'])

Case演示

我们来看下具体的示例

if __name__ == '__main__':
    start = time.time()
    print("Start: " + str(start))
    print('广东省广州市天河区天河路600号')
    address_coordinate_get_request('39.984154,116.307490')
    address_coordinate_post_request("广东省广州市天河区天河路600号")

    stop = time.time()
    print("Stop: " + str(stop))
    print(str(stop - start) + "秒")

结果如下

Start: 1553160605.62
广东省广州市天河区天河路600号
酒店宾馆:星级酒店
{u'lat': 23.13514, u'lng': 113.34147}
Stop: 1553160606.0
0.378000020981

猜你喜欢

转载自blog.csdn.net/whgyxy/article/details/88721518