openstreetmap - 在给定的边界框中使用 Overpass API 将交叉口过滤为(4 路交叉口、T 形交叉口和其他)
问题描述
这里有一个脚本可以处理来自 OSM 的数据以检测给定边界框中的交叉点。它的工作原理是在给定的边界框中获取所有路径,然后找到与这些道路共享公共节点的其他路径。这是执行此操作的查询,
way
["highway"]
["highway"!~"footway|cycleway|path|service|track|proposed"]
(, , , )
->.relevant_ways;
foreach.relevant_ways->.this_way{
node(w.this_way)->.this_ways_nodes;
way(bn.this_ways_nodes)->.linked_ways;
way.linked_ways
["highway"]
["highway"!~"footway|cycleway|path|service|track|proposed"]
->.linked_ways;
(
.linked_ways->.linked_ways;
-
.this_way->.this_way;
)->.linked_ways_only;
node(w.linked_ways_only)->.linked_ways_only_nodes;
node.linked_ways_only_nodes.this_ways_nodes;
out;
}
此查询返回所有类型的交叉口(4 路交叉口、T 形交叉口、...)。
问题:有没有办法进一步过滤掉交叉口到四向交叉口和丁字路口?
我的一个想法是检查公共节点是否是一种方式的端点,这会形成交叉口,如果公共节点位于道路中间,它将是一个 4 路交叉口。但我不确定如何编写执行此操作的查询。
任何帮助将不胜感激,谢谢。
解决方案
推荐阅读
- android - 如何更改 animateLayoutChanges 顺序?
- swift - Swift 上 if var 闭包的范围
- java - maven站点中的链接、校验和和签名有什么不同
- webserver - 使用 glassfish 网络服务器时是否需要 Web.xml 文件?
- sapui5 - 下载 SAP Standard Fiori Apps 的替代方法
- vba - vba 代码 - 在不破坏格式的情况下替换 html 电子邮件中的文本
- python - 根据条件合并列
- python - 如何使用 python 获取拥有 azure 订阅所有者访问权限的用户列表
- python - 根据输入连接到网站的一部分。Python
- php - 在 Laravel 中使用 AJAX 发布一些数据时出现 500 内部服务器错误