37 | | * Add support for the PostGIS 1.5 geography type. |
| 42 | * Add support for the PostGIS 1.5 [http://postgis.refractions.net/documentation/manual-svn/ch04.html#PostGIS_Geography geography] type. |
| 43 | * Current API in testing is to set `geography` keyword on the geometry field (only SRID of 4326 supported): |
| 44 | {{{ |
| 45 | from django.contrib.gis.db import models |
| 46 | |
| 47 | class City(models.Model): |
| 48 | point = models.PointField(geography=True) |
| 49 | objects = models.GeoManager() |
| 50 | |
| 51 | }}} |
| 52 | * API limited to subset of supported [http://postgis.refractions.net/documentation/manual-svn/ch08.html#PostGIS_GeographyFunctions geography functions]. |
| 63 | === Geometry Backend === |
| 64 | * Backend Information: |
| 65 | * Was necessary to decouple from database; makes it possible to swap out geometry representation used within the rest of !GeoDjango |
| 66 | * Set `GEOMETRY_BACKEND` to change from GEOS (default) to a different included backend, or with the module name of the user's choice. |
| 67 | * Requirements: |
| 68 | * `Geometry` and `GeometryException` objects |
| 69 | * `Geometry` objects require: |
| 70 | * Serialization properties: `wkb`, `wkt`, `ewkt`, `ewkb` |
| 71 | * Attribute properties: `coord_dim`, `geom_type` (string), `srid` |
| 72 | |
| 73 | * Initial Backends (housed in `django.contrib.gis.geometry.backend`): |
| 74 | * `geos`: default, uses `GEOSGeometry` |
| 75 | * `gdal`: uses `OGRGeometry` (actually faster at parsing than GEOS) |
| 76 | * `ogr`: thin wrapper over [http://trac.osgeo.org/gdal/wiki/GdalOgrInPython GDAL's SWIG bindings] |
| 77 | * `shapely` subclass of or thin wrapper over [http://trac.gispython.org/lab/wiki/Shapely Shapely] |
| 78 | |
| 82 | * Add support for the [http://trac.gispython.org/lab/wiki/PythonGeoInterface Python Geo Interface] |
| 83 | * Create a `__geo_interface__` property that returns a dictionary containing the `type`, `coordinates`, and `crs` of the `GEOSGeometry` |
| 84 | * Use the interface to create GeoJSON when GDAL not available, e.g., `simplejson.dumps(self.__geo_interface__)` |
| 85 | * Be able to initialize arbitrary Python objects that implement the `__geo_interface__` protocol |
| 86 | |
| 87 | === GDAL === |
| 88 | * #12154: `OGRGeometry` coordinate dimension change upon transform |
| 89 | * Add serialization properties for compatibility as geometry backend: `ewkb`, `hexewkb`, `ewkt` |
| 90 | * Add support for the Python Geo Interface |
| 91 | * Same as above, but will be easier to implement |