Openstreetmap to sqlalchemy bridge
OSMAlchem的Python项目详细描述
目标
Osmalchemy的目标是提供完全透明的 使用sqlalchemy的项目中的真实openstreetmap数据。它 提供两种功能:
- 类似于主openstreetmap结构的模型声明 数据库,有一些限制,可用于使用sqlalchemy的任何地方,
- 从OpenStreetMap数据进行透明代理和数据提取。
其思想是可以使用sqlalchemy查询模型,并且 osmalchemy将直接满足来自数据库的查询,或者 从openstreetmap获取数据。这样,项目已经在使用 sqlalchemy不需要另一个数据库框架来使用openstreetmap 数据和保留planet.osm本地副本的必要性都很轻松。
例如,如果查询具有特定ID的节点,osmalchemy将…
- …尝试直接从数据库/orm获取节点,然后…
-
…如果可用,请检查其缓存时间,然后…
- …如果太旧,请从OSM刷新,或…
- …否则,从OSM获取,然后…
- …最后创建一个真实的、orm映射的数据库对象。
这是个粗略的想法,它对所有类型的osm元素和 查询.
Osmalchemy使用天桥来满足复杂的查询。
非目标
osmalchemy并不打算取代大规模的osm数据框架,比如 博士后,耳濡目染之类的。事实上,在性能和 否则,就跟不上他们了。
如果你正在运行一个处理大量地图的大型项目 数据,有数百万的请求或用户,那么osmalchemy不适合你 (YMMV)
Osmalchemy填补了资源有限和 无法处理planet.osm的完整副本和自己的api后端,并且 希望处理有限的地图数据。
然而,使用osmalchemy作为orm代理和自己的 API后端。谁知道呢?
也许,同样,奥斯曼化学是一个非常愚蠢的想法 在任何情况下。