【问题标题】:Getting the outer path of a region获取区域的外部路径
【发布时间】:2015-05-23 02:55:31
【问题描述】:

我想通过由邮政编码的前两个字母定义的立交桥获取区域的形状。 这个查询:

rel["boundary"="postal_code"][postal_code~"32..."];
out geom;

为我提供了一些我想要合并的领域。我对外部边界的路径感兴趣,即只是一个大区域而不是许多小区域。

您可以在http://overpass-turbo.eu/s/8il 上查看结果。

是否可以仅通过立交桥查询来实现?如果不是,那么为 JavaScript 应用程序提供所需结果的最有效方法是什么?

【问题讨论】:

    标签: border union postal-code overpass-api


    【解决方案1】:

    Overpass API 不支持此功能。从 Overpass API 检索所有相关的邮政编码关系后,您需要类似凹壳后处理步骤。正如您在下面的评论中指出的那样,在 Javascript 中完成此操作的一个示例可能是 http://andriiheonia.github.io/hull/。您还可以查看 gis.stackexchange 以了解替代方法 (https://gis.stackexchange.com/questions/tagged/concave-hull)。

    如果您只是想在 Overpass Turbo 中调整外观以使多边形看起来像一个大区域,您应该查看包含的 MapCSS 功能。下面是一个小例子,可以作为起点:http://overpass-turbo.eu/s/8la

    顺便说一句:我建议将您的查询限制在某个区域/bbox,因为您的原始查询还返回来自俄罗斯的一些数据。

    【讨论】:

    • 我完全同意限制查询是必要的。然而,我能想到的最好的事情是{{geocodeArea:Germany}}->.searchArea; ( rel["boundary"="postal_code"][postal_code~"32..."](area.searchArea); ); out geom; 这个查询似乎甚至没有终止。至少现在需要几分钟而不是几秒钟。如何解决?
    • 我刚刚重试了。我的第一种方法大约需要 5 秒。包括 geocodeArea 意味着大约需要 1 分钟。 bbox 方法也需要 1 分钟 - 在其当前版本中,结果为空。让我感到困惑的是,对查询的限制应该比无限制的搜索花费更长的时间。
    • 我更新了我之前的答案,请参阅上面的新查询。响应时间:5s。
    • 非常感谢,这次可以确认回复时间了。通过删除视觉边框使小区域看起来像单个区域的方法现在可能对我有用。让我们为您的答案添加一些提示,将来如何进一步发展。我们下一步可能要计算的是凹壳。为此,github 上有一个快速算法的 JavaScript 实现。如有必要,我们可以通过添加 [out:json] 来输出 json 格式的立交数据;在第一行。
    • 好的,太好了。我为我的答案添加了更多指针。如果您现在满意,请不要忘记投票/接受答案。谢谢
    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2015-10-29
    • 1970-01-01
    • 2015-12-18
    • 2017-01-02
    相关资源
    最近更新 更多