欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

行千里,看山城轻轨穿楼越林;致广大,望重庆交通桥上桥下

发布时间:2025/1/21 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 行千里,看山城轻轨穿楼越林;致广大,望重庆交通桥上桥下 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

点击上方“AI搞事情”关注我们


说到重庆,没有不为其魔幻交通所惊讶折服的,有这样婶儿的

这样婶儿的????

这样的????这样的????

以及这样的????当然,还有这样的????

言归正传,这篇文章除了让大伙儿感受下山城交通的魔幻属性外,我们将通过python爬虫和可视化,以及结合百度地图,对重庆的公共交通进行可视化展示分析。

01 公交数据爬虫

公交线路数据

之前,我们有通过python的scrapy爬虫框架进行各种数据的爬取(【利用python分析了下乘风破浪的姐姐以】及【Scrapy爬取姓名大全,看看那个名字最受父母青睐】),同样可以利用scrapy进行重庆公共交通数据的爬取。不过,这次小编在网上看见有比人造好轮子,直接利用requests请求网站,并通过BeautifulSoup解析HTML标签进行数据抓取。

首先,我们选择的网站是8684公交查询网站:chongqing.8684.cn,然后遍历每个数字或者字母开头下面的所有数据。

话说为什么没有7开头的公交呢?

以数字1开头的公交数据为例:

我们可以继续深钻爬取站点数据,但是8684缺少公交站点的GPS坐标以及公交线路GPS坐标数据。

GPS坐标数据

GPS数据怎么获取呢?我们可以通过地图api进行实现,这里我们选择高德地图获取公交线路的站点GPS和线路GPS信息,可以看到返回的json格式数据包含了线路名称、站点GPS、线路GPS等信息。

02 公交数据可视化

利用pyecharts库中百度地图BMap进行经纬度在地图上的绘制,在这之前,需要先在百度地图注册获取百度开放平台秘钥(浏览器端AK),地址为:

http://lbsyun.baidu.com/apiconsole/key#

同时,高德地图GPS采用火星坐标系(GCJ-02),需要转换为百度GPS坐标系(BD-09),这样才不会有偏差。

重庆轻轨线路

代码可以参照pyecharts官方demo

import re import math import pandas as pd import json import random from pyecharts.charts import BMap from pyecharts import options as opts# 轨道交通颜色 sub_way_color = {'轨道交通1号线': "rgba(255, 0, 0, 1)",'轨道交通2号线': "rgba(0, 255, 0, 1)",'轨道交通3号线': "rgba(0, 0, 255, 1)",'轨道交通3号线北延伸段': "rgba(0, 0, 255, 1)",'轨道交通4号线': "rgba(255, 255, 0, 1)",'轨道交通5号线': "rgba(0, 255, 255, 1)",'轨道交通6号线': "rgba(242, 158, 177, 1)",'轨道交通6号线支线': "rgba(242, 158, 177, 1)",'轨道交通10号线': "rgba(128, 0, 128, 1)",'轨道交通环线': "rgba(250, 202, 46, 1)"} def prcess_data():df_line = pd.read_csv('chongqing_line.csv')df_line['line_name_sub'] = df_line['line_name'].apply(lambda x: re.sub(r'[(](.*)[)]', '', x, 2,flags=re.I ))# print(len(set(df_line['line_name_sub'])))print(df_line.head(3))gs = df_line.groupby('line_name_sub')result = []for name, g in gs:if '轨道' not in name:continueif name == '': continueprint(name)line_dict = {}# lons, lats = wgs84_to_gcj02(g['lon'].values.tolist(), g['lat'].values.tolist())line_dict["coords"] = g[['lon', 'lat']].values.tolist()  # [[lon, lat] for lon, lat in zip(lons, lats)]color = sub_way_color[name] if name in sub_way_color else "rgba({},{},{},1)".format(random.randint(0, 255),random.randint(0, 255),random.randint(0, 255))line_dict["lineStyle"] = {"normal": {"color": color}}result.append(line_dict)return resultif __name__ == '__main__':bus_lines = prcess_data()# visualizationBAIDU_MAP_AK = "pAYSAsGIDpUfGcN4fg9Ar3F2mqQZHnVH" # 浏览器端AKc = (BMap(init_opts=opts.InitOpts(width="1200px", height="800px")).add_schema(baidu_ak=BAIDU_MAP_AK,center=[106.58, 29.56],zoom=10,is_roam=True,map_style={"styleJson": [{"featureType": "water","elementType": "all","stylers": {"color": "#031628"},},{"featureType": "land","elementType": "geometry","stylers": {"color": "#000102"},},# 去除了部分地图样式代码]},).add("",type_="lines",is_polyline=True,data_pair=bus_lines,linestyle_opts=opts.LineStyleOpts(opacity=0.2, width=0.5),# 如果不是最新版本的话可以注释下面的参数(效果差距不大)progressive=200,progressive_threshold=500,).render("bmap_chongqing_bus_routines_guidao.html"))

同理,我们把重庆的公交数据均绘制出来

重庆公交动态展示

至此,我们对重庆公交线路的动态可视化就完成了。

往期推荐

  • 利用python分析了下乘风破浪的姐姐

  • 蹭一波热度,对《青春有你2》109位漂亮小姐姐下手了

  • python获取原图GPS位置信息,轻松得到你的活动轨迹

  • Scrapy爬取姓名大全,看看那个名字最受父母青睐

  • Windows10下的AlphaPose配置,人体摔倒姿态识别


长按二维码关注我们

有趣的灵魂在等你

总结

以上是生活随笔为你收集整理的行千里,看山城轻轨穿楼越林;致广大,望重庆交通桥上桥下的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。