GeoAlchemy 2 Documentation¶
Using SQLAlchemy with Spatial Databases.
GeoAlchemy 2 provides extensions to SQLAlchemy for working with spatial databases.
GeoAlchemy 2 focuses on PostGIS. PostGIS 1.5 and PostGIS 2 are supported.
Note
GeoAlchemy 2 doesn’t currently support other dialects than PostgreSQL/PostGIS. Supporting Oracle Locator in the previous series was the main contributor to code complexity. So it is currently not clear whether we want to go there again.
GeoAlchemy 2 aims to be simpler than its predecessor, GeoAlchemy. Simpler to use, and simpler to maintain.
Requirements¶
GeoAlchemy 2 requires SQLAlchemy 0.8. GeoAlchemy 2 does not work with SQLAlchemy 0.7 and lower.
Installation¶
GeoAlchemy 2 is available on the Python Package Index. So it can be installed with the standard pip or easy_install tools.
What’s New in GeoAlchemy 2¶
- GeoAlchemy 2 supports PostGIS’
geometry
type, as well as thegeography
andraster
types. - The first series had its own namespace for spatial functions. With GeoAlchemy
2, spatial functions are called like any other SQLAlchemy function, using
func
, which is SQLAlchemy’s standard way of calling SQL functions. - GeoAlchemy 2 works with SQLAlchemy’s ORM, as well as with SQLAlchemy’s SQL Expression Language (a.k.a the SQLAlchemy Core). (This is thanks to SQLAlchemy’s new type-level comparator system.)
- GeoAlchemy 2 supports reflection of geometry and geography columns.
- GeoAlchemy 2 adds
to_shape
,from_shape
functions for a better integration with Shapely.
See the Migrate to GeoAlchemy 2 page for details on how to migrate a GeoAlchemy application to GeoAlchemy 2.
Tutorials¶
GeoAlchemy 2 works with both SQLAlchemy’s Object Relational Mapping (ORM) and SQL Expression Language. This documentation provides a tutorial for each system. If you’re new to GeoAlchemy 2 start with this.
Reference Documentation¶
Development¶
The code is available on GitHub: https://github.com/geoalchemy/geoalchemy2.
Contributors:
- Eric Lemoine, Camptocamp SA (https://github.com/elemoine)
- Dolf Andringa (https://github.com/dolfandringa)
- Frédéric Junod, Camptocamp SA (https://github.com/fredj)
- ijl (https://github.com/ijl)
- Loïc Gasser (https://github.com/loicgasser)
- Marcel Radischat (https://github.com/quiqua)
- rapto (https://github.com/rapto)
- Tobias Bieniek (https://github.com/Turbo87)
- Tom Payne (https://github.com/twpayne)
Many thanks to Mike Bayer for his guidance and support! He also fostered the birth of GeoAlchemy 2.