You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断OSMNX检索的指定边界框区域内是否存在可通行道路

OSMNX 判断指定区域是否存在可通行道路的实现方法

你可以通过异常捕获+图边数判断的逻辑实现需求,原理如下:
ox.graph_from_bbox在边界框内没有符合指定类型的道路数据时,会抛出ValueError异常;如果成功返回路网图对象,只要图中存在至少1条边,就对应区域内有符合要求的道路。

完整实现代码

import osmnx as ox

def has_specified_road(north: float, south: float, east: float, west: float, network_type: str = "drive") -> bool:
    """
    判断指定边界框内是否存在对应类型的可通行道路
    :param north: 边界框北纬
    :param south: 边界框南纬
    :param east: 边界框东经
    :param west: 边界框西经
    :param network_type: 道路类型,支持drive/ walk/ bike等osmnx支持的类型
    :return: 存在返回True,不存在返回False
    """
    try:
        G = ox.graph_from_bbox(north, south, east, west, network_type=network_type)
        # 判断是否存在至少1条道路(路网的边对应道路)
        return G.number_of_edges() > 0
    except ValueError:
        # 无匹配道路数据直接返回False
        return False

# 测试示例:你给出的旧金山测试区域
print(has_specified_road(37.79, 37.78, -122.41, -122.43))

补充说明

  • 若你需要判断步行、骑行等其他类型的道路,修改调用时的network_type参数即可
  • 该逻辑兼容新老版本OSMNX:即使旧版本不会抛出无数据异常,也会通过边数判断正确返回结果

内容的提问来源于stack exchange,提问作者Kyv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:54:02