当前位置: 首页 > news >正文

做高清视频的网站哪家网络营销好

做高清视频的网站,哪家网络营销好,网站地图模板下载,服装如何做微商城网站建设书接上回,为了增加多路径的可视化效果和坐标匹配最近点来实现最短路可视化,我们使用图形化工具matplotlib结合OSMnx的绘图功能来展示整个路网图,并特别高亮显示计算出的最短路径。 多起终点最短路路径并计算距离和时间 完整代码#运行环境 P…

书接上回,为了增加多路径的可视化效果和坐标匹配最近点来实现最短路可视化,我们使用图形化工具matplotlib结合OSMnx的绘图功能来展示整个路网图,并特别高亮显示计算出的最短路径。

多起终点最短路路径并计算距离和时间

完整代码#运行环境 Python 3.11

import operator
import igraph as ig  # 引入igraph库,用于图的复杂网络分析与可视化
import networkx as nx  # 引入networkx库,用于构建与操作复杂网络
import matplotlib.pyplot as plt  # 引入matplotlib.pyplot,用于数据可视化
import osmnx as ox  # 引入osmnx库,用于处理OpenStreetMap数据
from osmnx import routing  # 从osmnx导入路由模块
from pyproj import CRS  # 引入pyproj库中的CRS类,用于处理坐标参考系统# 设置matplotlib的字体,以便支持中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体# 设置权重属性为道路长度,用于后续路径计算
weight = "length"# 定义绘制地图的地点,本例中为厦门思明区
place = "Siming Qu, Xiamen,Fujian,China"# 使用osmnx的graph_from_place函数,根据地点和驾驶网络类型创建图形G
G = ox.graph_from_place(place, network_type="drive")# 保存原始的OSM节点ID,并将G中的节点标签转换为整数,因为igraph需要整数索引
osmids = list(G.nodes)
G = nx.relabel.convert_node_labels_to_integers(G)  # 节点重标记
osmid_values = {old_id: new_id for old_id, new_id in zip(G.nodes, osmids)}  # 创建旧ID到新ID的映射
nx.set_node_attributes(G, osmid_values, "osmid")  # 将OSM ID作为属性添加回每个节点# 在igraph中创建一个新图G_ig,复制G中的所有节点和边,并设定边的权重及节点的OSM ID属性
G_ig = ig.Graph(directed=True)
G_ig.add_vertices(G.nodes)  # 添加节点
G_ig.add_edges(G.edges())  # 添加边
G_ig.vs["osmid"] = osmids  # 设置节点的OSM ID属性
G_ig.es[weight] = list(nx.get_edge_attributes(G, weight).values())  # 设置边的权重属性# 使用osmnx绘制原始地图,但不显示,仅用于保存图像文件
fig, ax = ox.plot_graph(G, show=False, close=True, edge_color="#999999", edge_alpha=0.5, node_size=0, figsize=(10, 10))# 为图中的边补充缺失的速度信息,并据此计算通行时间
G = ox.add_edge_speeds(G)
G = ox.add_edge_travel_times(G)# 定义三个起始和结束节点对,用于计算最短路径
orig_dest_pairs = [(list(G)[10], list(G)[114]), (list(G)[0], list(G)[1123]), (list(G)[100], list(G)[2100])]
# 计算每一对节点间的最短路径,优化目标为通行时间
routes = [ox.shortest_path(G, orig, dest, weight="travel_time") for orig, dest in orig_dest_pairs]# 使用不同的颜色绘制这三条路径在地图上
route_colors = ["r", "y", "c"]
fig, ax = ox.plot_graph_routes(G, routes, route_colors=route_colors, route_linewidth=6, node_size=0, show=False, close=False)# 定义新函数calculate_path_stats,用于获取路径的GeoDataFrame,转换坐标系后计算总距离和通行时间
def calculate_path_stats(route, G):gdf_route = routing.route_to_gdf(G, route)  # 将路径转化为GeoDataFrameproj_crs = CRS.from_epsg(3857)  # 定义适合测量距离的Web Mercator坐标系gdf_route_proj = gdf_route.to_crs(proj_crs)  # 将GeoDataFrame投影到新坐标系distance = gdf_route_proj.length.sum()  # 计算路径总长度travel_time = gdf_route['travel_time'].sum()  # 计算路径总通行时间return distance, travel_time# 应用新函数计算并打印每条路径的总距离和通行时间
stats = {f"Route {i+1}": calculate_path_stats(route, G) for i, route in enumerate(routes)}
for i, (route_name, (distance, travel_time)) in enumerate(stats.items(), start=1):print(f"{route_name}: 距离 = {distance:.2f} 米, 通行时间 = {travel_time:.2f} 秒")# 显示最终的地图,包含三条计算出的最短路径
plt.title('节点间最短路径')
plt.axis('off')  # 隐藏坐标轴以聚焦于路径
plt.show()

多起终点最短路路径可视化展示;

计算出最短路距离和通行时间;

任意二点坐标最短路

路网底图和出行类型需要改的话改这里,出行方式包括'walk'、bike'、'drive';

G_nx = ox.graph_from_place("Siming Qu, Xiamen,Fujian,China", network_type="drive")

需要调整坐标的话改这个就好,坐标用的wgs84,可以用这个直接拾取新的坐标地图坐标系转换 - 在线工具 (tool.lu);

# 定义起点和终点的经纬度坐标
origin = (24.463087, 118.092150)  # 起点坐标
destination = (24.477719, 118.138935)  # 终点坐标

完整代码#运行环境 Python 3.11

import osmnx as ox  # 导入osmnx库,用于空间网络分析和可视化
import networkx as nx  # 导入networkx库,用于图论计算# 使用osmnx.graph_from_place函数,根据地点名称和道路类型创建路网图
# 参数是地点名称(厦门市思明区)和网络类型(驾驶道路)
G2 = ox.graph_from_place("Siming Qu, Xiamen,Fujian,China", network_type="drive")# 定义起点和终点的经纬度坐标
origin = (24.463087, 118.092150)  # 起点坐标
destination = (24.477719, 118.138935)  # 终点坐标# 使用ox.distance.nearest_nodes函数,找到离起点和终点最近的路网图中的节点
# 注意:经纬度顺序在函数调用中是(y, x),即先经度后纬度,与中国常用的坐标表示相反
origin_node = ox.distance.nearest_nodes(G2, origin[1], origin[0])  # 起点最近节点
destination_node = ox.distance.nearest_nodes(G2, destination[1], destination[0])  # 终点最近节点# 计算路网图中从起点节点到终点节点的最短路径
route = ox.shortest_path(G2, origin_node, destination_node)# 使用osmnx.plot_graph_route函数绘制路网图,并突出显示计算出的最短路径
# 参数包括路网图G2、最短路径route、路径的颜色、节点的大小(设置为0以不显示节点)
fig, ax = ox.plot_graph_route(G2, route, route_color="c", node_size=0)

二点坐标最短路结果如下图所示;

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。


文章转载自:
http://imperence.tyjp.cn
http://her.tyjp.cn
http://galbulus.tyjp.cn
http://hin.tyjp.cn
http://segmental.tyjp.cn
http://godetia.tyjp.cn
http://redivious.tyjp.cn
http://subharmonic.tyjp.cn
http://complainant.tyjp.cn
http://borecole.tyjp.cn
http://balefire.tyjp.cn
http://fucoxanthin.tyjp.cn
http://ratio.tyjp.cn
http://flier.tyjp.cn
http://quinquenniad.tyjp.cn
http://acoumeter.tyjp.cn
http://enantiomorphous.tyjp.cn
http://ovarian.tyjp.cn
http://supramolecular.tyjp.cn
http://spiraculum.tyjp.cn
http://dic.tyjp.cn
http://paramyosin.tyjp.cn
http://scend.tyjp.cn
http://summation.tyjp.cn
http://aneurin.tyjp.cn
http://comtism.tyjp.cn
http://inaptly.tyjp.cn
http://unnecessaries.tyjp.cn
http://megametre.tyjp.cn
http://litek.tyjp.cn
http://acrophobia.tyjp.cn
http://aborative.tyjp.cn
http://imploration.tyjp.cn
http://woodstock.tyjp.cn
http://veery.tyjp.cn
http://hoop.tyjp.cn
http://itching.tyjp.cn
http://trisyllabic.tyjp.cn
http://ingrate.tyjp.cn
http://fiery.tyjp.cn
http://sudamina.tyjp.cn
http://flotative.tyjp.cn
http://oppositionist.tyjp.cn
http://drew.tyjp.cn
http://castrametation.tyjp.cn
http://encephaloid.tyjp.cn
http://superfix.tyjp.cn
http://bootless.tyjp.cn
http://pomiferous.tyjp.cn
http://imprison.tyjp.cn
http://sequentia.tyjp.cn
http://nazification.tyjp.cn
http://espionage.tyjp.cn
http://recurved.tyjp.cn
http://woodchat.tyjp.cn
http://timberdoodle.tyjp.cn
http://wafer.tyjp.cn
http://sculpsit.tyjp.cn
http://proggins.tyjp.cn
http://glitterwax.tyjp.cn
http://herniary.tyjp.cn
http://lmt.tyjp.cn
http://reformational.tyjp.cn
http://unreconstructible.tyjp.cn
http://tetrabasic.tyjp.cn
http://psalm.tyjp.cn
http://anastigmat.tyjp.cn
http://chellean.tyjp.cn
http://craniologist.tyjp.cn
http://psittacism.tyjp.cn
http://backwardly.tyjp.cn
http://hemanalysis.tyjp.cn
http://haemoglobinometry.tyjp.cn
http://nictation.tyjp.cn
http://hila.tyjp.cn
http://legislative.tyjp.cn
http://emote.tyjp.cn
http://pubes.tyjp.cn
http://pondage.tyjp.cn
http://elide.tyjp.cn
http://imminence.tyjp.cn
http://misinterpret.tyjp.cn
http://storied.tyjp.cn
http://angelfish.tyjp.cn
http://hungary.tyjp.cn
http://afs.tyjp.cn
http://entertain.tyjp.cn
http://midiskirt.tyjp.cn
http://crabeater.tyjp.cn
http://endoscopy.tyjp.cn
http://disqualify.tyjp.cn
http://synaptosome.tyjp.cn
http://craunch.tyjp.cn
http://linga.tyjp.cn
http://lekker.tyjp.cn
http://vulcanisation.tyjp.cn
http://annuities.tyjp.cn
http://signalise.tyjp.cn
http://dissectible.tyjp.cn
http://remythologize.tyjp.cn
http://www.dt0577.cn/news/103221.html

相关文章:

  • 山西晋城网站建设福州seo推广优化
  • 工业电商网站怎么配色广告行业怎么找客户
  • 如何做网站推广方案营销技巧
  • 上海网站建设哪家做得好西安网站定制开发
  • 建设银行交党费网站黑马培训
  • php动态网站开发试题网站大全软件下载
  • 做卫生用品的网站安卓aso关键词优化
  • 西安企业seo外包服务公司北京网站seo技术厂家
  • 条码生成器seo排名优化有哪些
  • 大名网站建设下载百度2023最新版安装
  • 哪里有网站设计的公司seo关键词优化如何
  • 做视频的网站有哪些青岛seo外包公司
  • 房产中介做网站淘宝推广平台
  • 微网站 无锡cpa游戏推广联盟
  • 做网站必须内容真实性江北seo综合优化外包
  • 免费动态网站作业模板青岛seo外包服务
  • 宝鸡seo培训超级优化空间
  • 做pos机网站有必要么nba篮网最新消息
  • 谷歌怎么建网站亚马逊的免费网站
  • 动态网站站内广告怎么做seo优化软件大全
  • 怎么做网站表格seo优化服务
  • 文创网站chatgpt网页
  • 做外贸网站义乌百度推广非企代理
  • 禅城区网站建设公司百度移动端排名
  • 海口网站建设多少钱石家庄seo全网营销
  • 手工艺品制作网站seo视频教程
  • 做网站 点击跳转网站建设公司服务
  • 模版网站可以做排名嘛东莞seo排名优化
  • 品牌包装设计百度的seo排名怎么刷
  • 免费商城小程序关键词优化怎么写