有句老话说得好:
高德高德,风驰电掣。
在高德的地图数据中,确实蕴藏着很多有价值的数据。比如交通态势信息、地理/逆地理编码、路径规划、交通事件查询、静态地图、IP定位、坐标转换等众多的查询工具。每个工具都很多的探索空间,欢迎感兴趣的读者自行尝试探索。
有一天我就在想,我们在用高德地图导航时其背后是如何进行路径规划的呢?是如何选择起讫点之间的最短路径呢?又是如何判别各个出行方式的不同路径等等一系列的疑问,突然使我发生兴趣,奈何我才疏学浅、浮光掠影,并不能很好的明白其中的大学问。
你也可以关注我的微信公众号----<若木的解忧杂货铺>
话不多说,见标题如会其意,咱们直接上干货,毕竟,咱们读者朋友还是喜欢点实在的东西。
在进行之前可以先到高德地图的开发者平台了解一下对于路径规划的介绍,有助于在编写程序中理解各个参数的意义。
"""
Created on 2024-10-11
@author: 若木的解忧杂货铺
key source:https://lbs.amap.com/api/webservice/guide/api/direction/
#编写安全爬虫的几点建议:
1.遵守法律法规
2.尊重他人权益
3.合理使用爬虫技术
4.建立良好的职业道德
......
"""
import json
import requests
key='高德key'
def get_location_x_y(place):
url = 'https://restapi.amap.com/v3/geocode/geo?parameters'
parameters = {
'key':key,
'address':'%s' % place
}
page_resource = requests.get(url,params=parameters)
text = page_resource.text
data = json.loads(text)
location = data["geocodes"][0]['location']
return location
def route_planning():
from_place = input("请输入起始地址:")
from_location = get_location_x_y(from_place)
to_place = input("请输入目的地:")
to_location = get_location_x_y(to_place)
type = input("选择出行方式(1.公交、2.步行、3.驾车、4.骑行),请输入数字:")
url="https://restapi.amap.com"
if type=="1":
url = url+ "/v3/direction/transit/integrated"
elif type=="2":
url = url + "/v3/direction/walking"
elif type=="3":
url = url + "/v3/direction/driving"
elif type == "4":
url = url + "/v4/direction/bicycling"
parameters = {
'key': key,
'origin': str(from_location),
'destination': str(to_location),
'extensions':'all',
'output':'json',
'city':'020',
}
response = requests.get(url, parameters)
txt = json.loads(response.text)
print(txt)
if type=="1":
txt = txt['route']['transits']
for i in txt:
i = i['segments'][0]['bus']['buslines'][0]['name']
print(i)
elif type=="2":
txt = txt['route']['paths'][0]['steps']
for i in txt:
i = i['instruction']
print(i)
elif type=="3":
txt = txt['route']['paths'][0]['steps']
for i in txt:
i = i['instruction']
print(i)
elif type == "4":
txt = txt['data']['paths'][0]['steps']
for i in txt:
i = i['instruction']
print(i)
if __name__ == '__main__':
route_planning( )
出发点:昆明理工大学呈贡校区
目的地:云南大学呈贡校区
1.公交
2.步行
3.驾车
4.骑行
以上就是本期分享的全部内容了,若有不当之处或者大家有其他的实现方法,欢迎私信或评论区留言。期待大家的点赞、关注、转发、在看。
点击阅读全文开始你的路径规划吧。