如何在本地查询Overpass API?

时间:2019-03-26 09:13:25

标签: openstreetmap overpass-api raspberry-pi-zero

我想在本地运行Overpass API,而无需在Raspberry pi零w上访问互联网。

API安装解决方案不合适,因为它至少需要1 GB RAM https://wiki.openstreetmap.org/wiki/Overpass_API/Installation

我如何才能在本地进行查询,而查询只会在一个城市进行。 有什么解决方案可以从OSM文件或XML文件进行查询?

用于我目的的QL:

node(around:300,35.7576,51.4100)[amenity];
(._;>;);
out body;

2 个答案:

答案 0 :(得分:1)

您不能使用标准的安装过程,因为即使编译也很可能产生稍后崩溃的代码。加载数据也是如此。

我整理了有关Raspberry PI 2的综合指南,您可以将其用作基准:https://wiki.openstreetmap.org/wiki/User:Mmd/Overpass_API/Raspberry

您应该使用官方指南中提到的源代码http://dev.overpass-api.de/releases/osm-3s_v0.7.55.tar.gz。另外,请确保将配置选项更改为

./configure CXXFLAGS="-Og -g -fno-omit-frame-pointer -march=native"

否则,由于内存访问未对齐(!),稍后您将获得随机分段错误。

对于update_database命令,必须使用--flush-size=1来限制内存消耗,否则此过程将消耗过多内存并崩溃。

512MB确实是非常有限的内存,对于您而言,可能仍然不够。

答案 1 :(得分:0)

如果您打算仅将一个城市导入数据库,那么您可能会获得不到1 GB的RAM。去尝试一下。但是,预计查询速度会很慢。

对OSM XML或PBF文件的查询将不起作用。需要首先处理这些原始数据。