在QGIS中创建仅含道路交叉口图层的问题求助
提取OSM道路交叉口节点的正确操作方法
问题出在哪?
你用的「全部融合」默认是按属性字段合并的,OSM道路的highway这类属性不同时,哪怕是同一段路也会被拆成多段,后续的线相交操作就会把这些分段点当成交叉口节点。另外原始OSM数据里可能还有伪节点(不连接其他线的冗余节点),这也会产生多余节点。
一步步解决:
- 先清伪节点
直接用处理工具箱的「删除伪节点」工具,把道路上那些不连接其他线的冗余节点先清掉,这一步能解决大部分非交叉口的分段点问题。 - 合并相连道路(可选)
如果想忽略属性合并所有连在一起的道路,用「合并线」工具,设置「合并条件」为「仅连接的线」,这样不管属性如何,物理相连的道路都会合并成单条线,避免因属性拆分导致的多余交点。要是你需要保留不同属性道路的交叉口(比如主路和支路的交叉口),这步可以跳过。
- 提取并筛选交叉口节点
用「线转节点」生成道路所有节点,再用「删除重复几何图形」去重。然后加个字段(比如叫degree),用字段计算器输入以下代码计算节点度数:
度数大于1的节点就是真正的交叉口,选中这些节点导出成新图层就行。degree($geometry) - 更直接的方法:精准提取交点
用「线相交」工具时,设置「相交类型」为「仅节点」,同时勾选「只保留交点」,这样只会生成线之间真正交叉或连接的节点,不会把分段点算进来。
额外小技巧
- 处理前先用「检查几何图形」工具修复OSM数据的拓扑错误(比如线重叠、断开),确保道路连接没问题。
- 如果只需要特定类型的交叉口(比如主干道之间),可以先按
highway字段筛选道路图层,再做后续操作。
内容的提问来源于stack exchange,提问作者Kevin A
相关产品推荐
相关产品推荐

