Python OSMNX如何根据坐标获取节点ID 替代已废弃的get_nearest_node方法
OSMnx弃用get_nearest_node后的替代方案
OSMnx 1.0及以上版本已正式弃用ox.get_nearest_node()方法,官方推荐使用ox.nearest_nodes()作为替代,该方法支持单坐标/批量坐标查询,也适配你当前使用的非精确平均坐标场景。
调整后的可运行代码
import osmnx as ox lugar = 'Provincia de Santiago, Chile' city = ox.graph_from_place(lugar) # 参数顺序:路网对象、经度、纬度,与旧方法顺序相反 nearest_osm_node_id = ox.nearest_nodes(city, -70.74213872499999, -33.411204874999996) print(nearest_osm_node_id)
额外使用提示
- 新旧方法坐标传参顺序相反:旧方法
get_nearest_node是先传纬度再传经度,新方法nearest_nodes是先传经度再传纬度,注意不要搞混导致结果偏差 - 如果需要评估坐标和匹配节点的距离误差,可调用
ox.distance.nearest_nodes并设置return_dist=True,会同时返回节点ID和坐标与节点的距离(单位:米),方便你验证平均坐标的匹配精度 - 如果业务场景不需要匹配到节点,而是需要匹配到具体道路边,可改用
ox.nearest_edges()方法获取最近的OSM边ID
内容的提问来源于stack exchange,提问作者Atria
相关产品推荐
相关产品推荐

