澄清 OVERPASS_MAX_QUERY_AREA_SIZE 默认值(OSMnx,Overpass API)

Clarification on OVERPASS_MAX_QUERY_AREA_SIZE default (OSMnx, Overpass API)

我正在使用 OSMnx 查询立交桥 API。我注意到它有一个相当大的最小区域大小默认值:

OVERPASS_MAX_QUERY_AREA_SIZE = 50*1000*50*1000

此值用于将 "larger" 多边形细分为块以提交到立交桥 API。

我想明白为什么面积这么大。例如,整个旧金山(约 50 平方英里)对于单个查询是 "simplified"。

关键问题:

  1. 减少提交给 Overpass 的查询大小有什么好处吗API?*

  2. 与更复杂的方法相比,降低提交到立交桥 API 的 shapes/polygons 的复杂性(即使用仅具有 4 个角坐标的矩形)是否有任何优势多边形?**

*注意:示例查询,我会是 运行(寻找构成步行网络的方式):

[out:json][timeout:180];(way["highway"]["area"!~"yes"]["highway"!~"cycleway|motor|proposed|construction|abandoned|platform|raceway"]["foot"!~"no"]["service"!~"private"]["access"!~"private"](37.778007,-122.445467,37.783454,-122.438958);>;);out;

**注意:此问题在 post 中得到了部分回答。也就是说,该问题并没有完全关注性能影响,也没有在 OSMnx 中用于细分 "larger" 几何的可变面积阈值的上下文中提出。

max_query_area_size 似乎是某些人在进行了多次测试 运行 之后得出的一些启发式值。从 Overpass API 一侧来看,这个数字本身几乎没有任何意义。

对于不同类型的查询,甚至在与 SF 不同的区域,它可能完全关闭。举个例子:对于不常见的标签,通常最好继续使用相当大的边界框,而不是用小边界框触发大量查询。

不过,对于某些语句类型,较大的边界框可能会导致处理时间显着延长。在这种情况下,将区域分成更小的部分可能会有所帮助。某些查询甚至可能会消耗过多内存,这迫使您将边界框分成更小的部分。

由于您没有提及您想要查询的类型 运行,因此很难提供一些一般性建议。这就像要求在不提供任何额外上下文的情况下编写 SQL 语句的最佳方法。

使用边界框代替 (poly:...) 具有性能优势。如果您可以指定边界框,请使用相应的边界框过滤器,而不是向多边形过滤器提供 4 lat/lon 对。