【问题标题】:Searching in proximity to an area in Overpass在立交桥的某个区域附近搜索
【发布时间】:2022-12-01 17:11:01
【问题描述】:

我正在尝试使用立交桥在“大”水域中找到码头。然而,似乎码头通常不在水域内,而是水在它们周围弯曲。是否可以通过邻近区域进行搜索?或者也许有另一种方法?

这是明尼苏达州德卢斯附近的一个人为示例,说明了该问题。

我们可以查看边界框内的水墩(和水体):

[out:json][timeout:180];
(
  nwr(
    46.762191510926186,
    -92.08509489611468,                                                                                    
    46.76367911337914,  
    -92.08318778203628
  )["man_made"="pier"];
  wr["name"]["natural"="water"]["water"!="river"]["boat"!="no"](if: length() > 3000)(
    46.762191510926186,
    -92.08509489611468,                                                                                    
    46.76367911337914,  
    -92.08318778203628
  );
);
(._;>;);
out body;
>;
out skel qt;

这里我们看到有一片水域和几个码头。但是,如果我更改查询以使边界框中的水体成为区域,然后我在该区域内搜索码头,我会得到一个空的响应:

[out:json][timeout:180];
area["name"]["natural"="water"]["water"!="river"]["boat"!="no"](if: length() > 3000)(
  46.762191510926186,
  -92.08509489611468,                                                                                    
  46.76367911337914,  
  -92.08318778203628
)->.mywater;
(
  nwr(area.mywater)["man_made"="pier"];
);
(._;>;);
out body;
>;
out skel qt;

如上所述,码头似乎不包含在水体中,而是位于边界上。

【问题讨论】:

    标签: overpass-api


    【解决方案1】:

    保罗,这对我有用:

    [out:json][timeout:180];
    area[name="Lake Superior"];
    way(area)["man_made"="pier"];
    (._;>;);
    out;
    

    在 Overpass Turbo 中查询:https://overpass-turbo.eu/s/1osL

    笔记:

    • 请查看列表是否完整。从您的问题看来,您似乎找到了一组“位于水体边界”的码头。如果您发布了此类示例,可能会有用。
    • 如您所见,这是您的查询的简化版本:我将其限制在苏必利尔湖,并且仅限于映射为方式的码头。但是,我相信您可以将其扩展到其他区域(使用原始查询中的边界框)和映射为节点或关系的码头。
    • 或者,查看Overpass Query Language reference 中的around 过滤器。我在搜索节点方面有很好的经验;不确定它如何与区域一起使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多