我想在本地运行Overpass API而不需要在Raspberry pi零上访问Internet。
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;
您无法使用标准安装过程,因为即使编译也很可能会生成以后崩溃的代码。同样适用于加载数据。
我整理了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 GB的RAM。就试一试吧。但是期望查询速度很慢。
对OSM XML或PBF文件的查询将不起作用。需要首先处理此原始数据。