python制作一线城市地铁运行动态图!赶地铁不怕做错车了!

前几天写了一篇制作公交线路图的文章,有朋友问我能不能做一下地铁的线路图,其实道理差不多,今天再带着大家做一下一线城市的地铁线路图

首先准备数据,以北京市为例,在高德地图地铁页面进行抓包,抓包地址为:

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.深圳地铁线路图

完整项目代码获取点这里即可!

猜你喜欢

转载自blog.csdn.net/weixin_43881394/article/details/109028337