如何用Overpass Turbo限制搜索区域,明文指定范围查询道路交叉口
解决方法
首先纠正你之前查询无结果的问题:道路的name属性通常存储在way对象上,而非node,你之前的查询错误地针对node搜索名称,所以找不到匹配项。
正确的Overpass查询脚本(带明文区域)
[out:json]; {{geocodeArea:New Jersey, USA}}->.searchArea; way[highway][name="Howard Avenue"](area.searchArea)->.n1; way[highway][name="Dick Street"](area.searchArea)->.n2; node(w.n1)(w.n2); out;
转换为明文区域的URL形式
将上述脚本进行URL编码后,即可得到带明文搜索区域的API链接:
https://overpass-api.de/api/interpreter?data=[out:json]%3B%0A%7B%7BgeocodeArea%3ANew%20Jersey%2C%20USA%7D%7D-%3E.searchArea%3B%0Away%5Bhighway%5D%5Bname%3D%22Howard%20Avenue%22%5D(area.searchArea)-%3E.n1%3B%0Away%5Bhighway%5D%5Bname%3D%22Dick%20Street%22%5D(area.searchArea)-%3E.n2%3B%0Anode(w.n1)(w.n2)%3B%0Aout%3B
关键说明
- Overpass API支持在URL中直接使用
{{geocodeArea:区域名称}}模板函数,无需预先转换为数字area ID - 转换URL时,需将脚本中的特殊字符(如双引号
"、分号;、大括号{{}}等)进行URL编码,确保API能正确解析 - 核心逻辑和你最初的查询一致:先定位目标道路的
way,再提取它们的公共节点(即交叉口),同时通过(area.searchArea)限制搜索范围在指定区域内
内容的提问来源于stack exchange,提问作者TomGeo
相关产品推荐
相关产品推荐

