如何在本地查询Overpass API?

问题描述 投票:1回答:2

我想在本地运行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;
openstreetmap overpass-api raspberry-pi-zero
2个回答
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实际上是非常有限的内存量,在您的情况下可能仍然不够。


0
投票

如果您打算只将一个城市导入数据库,那么您可能会使用少于1 GB的RAM。就试一试吧。但是期望查询速度很慢。

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

© www.soinside.com 2019 - 2024. All rights reserved.