= GIS Storage = For portability, the default storage for Features is the normal database via Web2Py's [http://mdp.cti.depaul.edu/examples/default/orm DAL]. In order to support Lines & Polygons we need to store as [http://en.wikipedia.org/wiki/Well-known_text WKT] * UI for Points can hide this behind simple Lat/Lon * [http://pypi.python.org/pypi/Shapely/ Shapely] used to do conversion An option should be provided to store in [http://postgis.refractions.net PostGIS], [http://www.gaia-gis.it/spatialite Spatialite] or even [http://gitorious.org/geocouch/ GeoCouch] instead, where available, as then can have spatial indexes for speed.[[BR]] Q: Could we extend DAL for spatial indexes? * [http://groups.google.com/group/web2py/browse_thread/thread/7551b50ef3ca72a8 DAL can be bypassed] to allow other ORMs to be used: {{{response.custom_commit=lambda: do_commit()}}} == PostGIS == Since we store features in Lat/Lon then we need to use the geography_columns, which stay updated automatically :) {{{ geog GEOGRAPHY(Point) geog GEOGRAPHY(Polygon) ST_Distance(geography, geography) returns double ST_DWithin(geography, geography, float8) returns boolean ST_Area(geography) returns double ST_Length(geography) returns double ST_Covers(geography, geography) returns boolean ST_CoveredBy(geography, geography) returns boolean ST_Intersects(geography, geography) returns boolean ST_Centroid(geometry) returns a point that is approximately on the center of mass of the input argument. This simple calculation is very fast, but sometimes not desirable, because the returned point is not necessarily in the feature itself. If the input feature has a convexity (imagine the letter ā€˜Cā€™) the returned centroid might not be in the interior of the feature. ST_PointOnSurface(geometry) returns a point that is guaranteed to be inside the input argument. It is substantially more computationally expensive than the centroid operation }}} == Options == Q: integrate [http://featureserver.org FeatureServer]? Q: use [http://geoalchemy.org/ GeoAlchemy]? Q: copy [http://docs.djangoproject.com/en/dev/ref/contrib/gis/db-api/ GeoDjango]? ---- [wiki:BluePrintGeographicInformationSystems GIS BluePrints]