pyecharts:绘制动态轨迹图(自动获取指定位置坐标,并绘制动态轨迹图)

1|0引言

  • 这几天想要绘制骑行的动态轨迹图,想到了用pyecharts来搞一下,于是有了本文
  • 在网上查了半天,发现pyecharts带你领略动态轨迹图的风骚不错,网上其他博客大多也是这个的翻版
  • 但是这个有个问题,就是代码中用到的数据总是不那么好获取,其他博客甚至没有给出数据获取链接,所以想要快速实现一个小demo,变得比较繁琐。
  • 于是,结合百度地图API和上面提到的博客代码,有了本篇文章:可以自动获取指定地方的经纬度,并绘制动态轨迹图
  • 注意事项:
    • 我的本意是想绘制我们村附近的动态轨迹图,结果地图精度显示不到,有知道怎么搞的小伙伴,欢迎讨论
  • 相关源码:pyecharts-showDynamicTrajectory 欢迎Star

2|0安装

3|0代码

from urllib.request import urlopen, quote import json from pyecharts import GeoLines, Style def get_location_coordinate(location_name): api_url = 'http://api.map.baidu.com/geocoding/v3/?address=' api_url = f'{api_url}{quote(location_name)}&output=json&ak=你的ak' result = urlopen(api_url) result = json.loads(result.read().decode())['result']['location'] return result['lng'], result['lat'] # 参考小文的 def plot_geolines(plotting_data, geo_cities_coords): # 设置画布的格式 style = Style(title_pos="center", width=1000, height=800) # 部分地理轨迹图的格式 style_geolines = style.add(is_label_show=True, line_curve=0.3, # 轨迹线的弯曲度,0-1 line_opacity=0.6, # 轨迹线的透明度,0-1 geo_effect_symbol='plane', # 特效的图形,有circle,plane,pin等等 geo_effect_symbolsize=10, # 特效图形的大小 geo_effect_color='#7FFFD4', # 特效的颜色 geo_effect_traillength=0.1, # 特效图形的拖尾效果,0-1 label_color=['#FFA500', '#FFF68F'], # 轨迹线的颜色,标签点的颜色, border_color='#97FFFF', # 边界的颜色 geo_normal_color='#36648B', # 地图的颜色 label_formatter='{b}', # 标签格式 legend_pos='left') # 作图 geolines = GeoLines('出行轨迹图', **style.init_style) geolines.add('从北京出发', plotting_data, maptype='china', # 地图的类型,可以是省的地方,如'广东',也可以是地市,如'东莞'等等 geo_cities_coords=geo_cities_coords, **style_geolines) # 发布,得到图形的html文件 geolines.render('地理轨迹图.html') if __name__ == '__main__': location_name_list = ['北京', '郑州', '盐城', '高雄', '广州', '三亚', '成都', '拉萨', '乌鲁木齐', '银川', '呼和浩特', '漠河', '哈尔滨', '长春', '沈阳', '北京'] geo_cities_coords = {} for location in location_name_list: print(location) lat_long = get_location_coordinate(location) geo_cities_coords[location] = list(lat_long) plotting_data = [] for i in range(len(location_name_list)): if i < len(location_name_list)-1: plotting_data.append((location_name_list[i], location_name_list[i+1])) # 绘制动态图 plot_geolines(plotting_data, geo_cities_coords) print('ok,去浏览器看看吧')

4|0效果(GifCam录制)

5|0相关资料


__EOF__

本文作者Danno
本文链接https://www.cnblogs.com/shiwanghualuo/p/13053605.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Danno  阅读(12729)  评论(8编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示