参考https://blog.csdn.net/u011170540/article/details/52327796的文章,采用了文章提到的api,用matplotlib画了一下。对比使用导航的机关枪扫射式,使用道路名称获取路网信息比较靠谱高效,代码如下。
import requests
import pandas as pd
import os
import matplotlib.pyplot as plt
# from mpl_toolkits.basemap import Basemap
plt.rcParams['font.sans-serif'] = ['SimHei']
__author__ = "zhaoguang"
key = "xxxxxx"
url = f"http://restapi.amap.com/v3/road/roadname?city=022&key={key}&keywords=鞍山西道"
r = requests.get(url)
data = r.json()['roads']
df = pd.DataFrame(data, columns=data[0].keys())
segments = []
for line in df.polylines:
for segs in line:
segments.append(segs)
fig, ax = plt.subplots(1, 1)
for segment in segments:
lng = [float(i.split(',')[0]) for i in segment.split(';')]
lat = [float(i.split(',')[1]) for i in segment.split(';')]
ax.scatter(lng, lat, c='k')
ax.plot(lng, lat)
ax.set_title(url)
ax.set_yticks([max(lat)])
ax.set_xticks([max(lng)])
ax.axis('equal')
plt.show()
画出来图是酱婶的,貌似还比较准确,没有什么飞出去的点。
包括2段路,鞍山西道和鞍山西道环岛,另外还包括一些道路速度的字段等等。