获取 POI 数据库
Posted
技术标签:
【中文标题】获取 POI 数据库【英文标题】:Get POIsdatabase 【发布时间】:2013-08-22 20:06:28 【问题描述】:我创建了一些旅行项目,但现在我需要世界各地的海滩数据库。 有没有这种类型的数据库。我可以从某个地方刮擦吗?是否可以从 openstreetmap 获取它?
我尝试使用:http://poi.openstreetmap.nl/,但没有这种类型的对象 (POI)
我也尝试过 google 地方,但也没有这种类型...
【问题讨论】:
【参考方案1】:OpenStreetMap 中的Elements 由tags 描述。对于海滩,有natural=beach 标签。
如果您想从 OSM 检索所有海滩,您可以使用 Overpass APi 并为所有具有此标签的元素运行查询,或者获取原始数据(行星或提取物)并在之后运行查询。
Overpass-XML 查询如下所示:
<osm-script output="json">
<union>
<query type="node">
<has-kv k="natural" v="beach"/>
</query>
<query type="way">
<has-kv k="natural" v="beach"/>
</query>
<query type="relation">
<has-kv k="natural" v="beach"/>
</query>
</union>
<recurse type="down"/>
</osm-script>
和等效的 Overpass-QL 查询(只是一种更紧凑的格式):
[out:json];(node["natural"="beach"];way["natural"="beach"];relation["natural"="beach"];);>;;
您可以run this query directly 检索原始数据(也可以检索XML 而不是JSON)或show the result OverpassTurbo。
请注意,这是一个非常繁重的查询,因为它涉及检查整个世界,而不仅仅是特定的地理区域(可以通过指定 bounding box 来实现)。因此查询需要一些时间才能运行,您可能需要增加timeout。
另一种方法是下载您感兴趣的planet 或extract,然后使用osmfilter 提取带有特定标签的所有元素。
【讨论】:
我会得到多少结果?海滩也有关键字吗? 所有结果。如前所述,海滩的关键字 (=tag) 是 natural=beach。 "remark": "运行时错误:查询在 181 秒后第 1 行的 \"recurse\" 中超时。" 另外,我如何获得更多关于海滩的信息,使用 openstrretmap 我可以获得海滩的位置和名称? 正如我所提到的,您可能会遇到如此繁重的查询超时。尝试增加它。此外,我添加了一种不同的方法来将这些标签提取到我的答案中。另外,您还想了解哪些有关海滩的其他信息?其中一些海滩可能附有其他标签,而另一些则没有。这就是 OSM 的工作原理。【参考方案2】:不完全是海滩,但你可以在这个网站上找到很多分类的 POI:http://waypointer.info
【讨论】:
以上是关于获取 POI 数据库的主要内容,如果未能解决你的问题,请参考以下文章