当前位置 : 主页 > 编程语言 > java >

基于Dijkstra算法的武汉地铁路径规划!

来源:互联网 收集:自由互联 发布时间:2022-09-02
作者:牧小熊,华中农业大学 前言 最近爬取了武汉地铁线路的信息,通过调用高德地图的api 获得各个站点的进度和纬度信息,使用Dijkstra算法对路径进行规划。 1.数据爬取 首先是需要



作者:牧小熊,华中农业大学


前言

最近爬取了武汉地铁线路的信息,通过调用高德地图的api 获得各个站点的进度和纬度信息,使用Dijkstra算法对路径进行规划。

1.数据爬取

首先是需要获得武汉各个地铁的地铁站信息,通过爬虫爬取武汉各个地铁站点的信息,并存储到xlsx文件中

武汉地铁线路图,2021最新武汉地铁线路图,武汉地铁地图-武汉本地宝wh.bendibao.com基于Dijkstra算法的武汉地铁路径规划!_sed

方法:requests、BeautifulSoup、pandas

import requests
from bs4 import BeautifulSoup
import pandas as pd

def spyder():
#获得武汉的地铁信息
url='http://wh.bendibao.com/ditie/linemap.shtml'
user_agent='Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
headers = {'User-Agent': user_agent}
r = requests.get(url, headers=headers)
r.encoding = r.apparent_encoding
soup = BeautifulSoup(r.text, 'lxml')
all_info = soup.find_all('div', class_='line-list')
df=pd.DataFrame(columns=['name','site'])
for info in all_info:
title=info.find_all('div',class_='wrap')[0].get_text().split()[0].replace('线路图','')
station_all=info.find_all('a',class_='link')
for station in station_all:
station_name=station.get_text()
temp={'name':station_name,'site':title}
df =df.append(temp,ignore_index=True)
df.to_excel('./subway.xlsx',index=False)

我们将爬取的地铁信息保存到excel文件中

基于Dijkstra算法的武汉地铁路径规划!_git_02

如果要做路径规划的话,我们还需要知道地铁站的位置信息

因此我们选择了高德地图的api接口

2.高德地图api接口配置

高德开放平台 | 高德地图 APIlbs.amap.com

上一篇:JavaAPI
下一篇:没有了
网友评论