gpt4 book ai didi

php - 从 openstreetmap 获取城市边界

转载 作者:可可西里 更新时间:2023-11-01 13:28:20 27 4
gpt4 key购买 nike

我正在开发一个网站,我需要根据用户输入获取指定区域的所有边界。例如,用户想知道名为 x 的城市的边界。我应该如何从 openstreetmap 获取它?我听说过 xapi 和渗透,但在任何地方都找不到任何例子。谢谢!

最佳答案

我在此处尝试使用 JavaScript 执行此操作: https://github.com/pgkelley4/city-boundaries-google-maps

基本上归结为找到 relation OpenStreetMap 将城市边界存储为。

我使用类似以下查询的方法来获取该区域:

area[name="Seattle"]["is_in:state_code"="WA"];foreach(out;);

或者如果没有找到任何东西,遍历节点以找到任何相关区域:

node[name="New York"][is_in~"NY"];foreach(out;is_in;out;);

要获取关系 ID,请从上述查询返回的区域 ID 中减去 3600000000。然后从它的 ID 中获取关系:

(relation(" + relationID + ");>;);out;

您可以在此处测试查询,我的查询可能会在以下方面得到改进: http://overpass-api.de/query_form.html

那是如何获得城市边界,处理它们是另一回事,因为关系中没有任何顺序。为此,请参阅我的 GitHub 项目和: http://wiki.openstreetmap.org/wiki/Relation:multipolygon/Algorithm

另外我会注意到城市边界的 OpenStreetMap 数据参差不齐。据我所知,像达拉斯和洛杉矶这样的大城市缺少它。

关于php - 从 openstreetmap 获取城市边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15658585/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com