前几天写了一篇制作公交线路图的文章,有朋友问我能不能做一下地铁的线路图,其实道理差不多,今天再带着大家做一下一线城市的地铁线路图
首先准备数据,以北京市为例,在高德地图地铁页面进行抓包,抓包地址为:
http://map.amap.com/subway/index.html?&1100
北京市地铁信息接口为:
http://map.amap.com/service/subway?_1599997789354=&srhdata=1100_drw_beijing.json
对json数据进行解析,使其成为Bmap数据格式
- import requests
- import jsonurl='http://map.amap.com/service/subway?_1599997789354=&srhdata=1100_drw_beijing.json'
- response=requests.get(url)result=json.loads(response.text)stations=[]for i in result['l']:
- station=[] for j in i['st']:
- station.append([float(k) for k in j['sl'].split(',')])
- stations.append(station)
- print(stations)
1.北京地铁线路图
- from pyecharts.charts import BMap
- from pyecharts import options as opts
- from pyecharts.globals import BMapType, ChartType
- c=( BMap(init_opts=opts.InitOpts(width="1600px", height="800px"))
- .add_schema( baidu_ak="", #百度秘钥ak
- center=[116.397128, 39.916527], #当前视角的中心点,用经纬度表示
- zoom=14, #当前视角的缩放比例
- is_roam=True, #是否开启鼠标缩放和平移漫游 ) .add( series_name="",
- type_=ChartType.LINES, data_pair=stations, is_polyline=True, #是否是多段线 is_large=True, #是否启用大规模线图的优化,在数据图形特别多的时候(>=5k)可以开启
- linestyle_opts=opts.LineStyleOpts(color="purple", opacity=0.6, width=1),
- effect_opts=opts.EffectOpts(trail_length=0.5),
- ) .add_control_panel( copyright_control_opts=opts.BMapCopyrightTypeOpts(position=3),
- maptype_control_opts=opts.BMapTypeControlOpts( type_=BMapType.MAPTYPE_CONTROL_DROPDOWN ), scale_control_opts=opts.BMapScaleControlOpts(), overview_map_opts=opts.BMapOverviewMapControlOpts(is_open=True), navigation_control_opts=opts.BMapNavigationControlOpts(), geo_location_control_opts=opts.BMapGeoLocationControlOpts(), ))c.render_notebook()
2.上海地铁线路图
3.广州地铁线路图
4.深圳地铁线路图
赶紧动手做一下你所在城市的地铁线路图吧!