Php 从openstreetmap获取城市边界

Php 从openstreetmap获取城市边界,php,openstreetmap,Php,Openstreetmap,我正在开发一个网站,我需要根据用户输入获取给定区域的所有边界。 例如,用户希望知道一个名为x的城市的边界。我应该如何从openstreetmap获取它?我听说过xapi和渗透,但在任何地方都找不到任何例子。 谢谢 我在这里尝试了一下使用JavaScript: 基本上,它归结为找到OpenStreetMap存储城市边界的方法 我使用了类似以下查询的方法来获取区域: area[name="Seattle"]["is_in:state_code"="WA"];foreach(out;); 或者,如

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

我在这里尝试了一下使用JavaScript:

基本上,它归结为找到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;
您可以在此处测试查询,我的查询可能会在以下方面得到改进:

这就是如何获得城市边界,处理它们是另一回事,因为关系中没有任何东西是有序的。有关详细信息,请参阅我的GitHub项目和:


我还要指出,城市边界的OpenStreetMap数据参差不齐。据我所知,像达拉斯和洛杉矶这样的大城市都没有这个功能。

你有没有尝试过谷歌搜索?我只想在一个查询中获得城市的所有详细信息。我认为诺曼蒂姆有这种能力,但我不知道如何使用它。看起来他们从2013年起就增加了洛杉矶。达拉斯仍然下落不明,但福斯沃思和其他周边城市都在那里。见: