1

出于我的特定目的,我需要更改 Overpass API 的 an 定义area以包括所有建筑物,无论它们是否有名称(因此is_in()将在请求时返回这些建筑物)。

为了实现这一点,我安装了一个包含 3 个特定国家/地区的 API 的本地副本,并修改了 os3m 脚本,该脚本生成适合我的定义的区域——到目前为止,一切都很好。

显然,这个脚本将需要比默认脚本更多的内存,因为它处理的内存多得多ways。我正在运行的机器有16GB of RAM. 如果我2GB为脚本指定或更少(即element-limit="2073741824"),那么它将耗尽内存,但指定更多(即使是 100MB)总是会导致错误:

Dispatcher_Client::request_read_and_idx::timeout

几秒钟后。

问题是,我如何告诉 Overpass API/调度程序,使用超过2GB完全没问题,实际上,允许它~15GB为此查询分配最多?

4

1 回答 1

1

您可以尝试增加total_available_spacesettings.cc 中的两个值(当前为 4GB)并从源代码重新编译 Overpass API。

AFAIK 之前没有人尝试过通过区域处理大量建筑物,因此请为进一步的问题做好准备。Overpass API 开发人员列表可能是讨论这个问题的好地方,也可以引起 Roland 的注意(Overpass API 开发人员/维护人员),因为他不在 stackoverflow 上。

于 2015-07-12T08:24:00.973 回答