app/django/contrib/gis/utils/srs.py
changeset 323 ff1a9aa48cfd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/django/contrib/gis/utils/srs.py	Tue Oct 14 16:00:59 2008 +0000
@@ -0,0 +1,27 @@
+def add_postgis_srs(srs):
+    """
+    This function takes a GDAL SpatialReference system and adds its
+    information to the PostGIS `spatial_ref_sys` table -- enabling
+    spatial transformations with PostGIS.  This is handy for adding
+    spatial reference systems not included by default with PostGIS.  
+    For example, the following adds the so-called "Google Maps Mercator 
+    Projection" (available in GDAL 1.5):
+    
+    >>> add_postgis_srs(SpatialReference(900913))
+
+    Note: By default, the `auth_name` is set to 'EPSG' -- this should
+    probably be changed.
+    """
+    from django.contrib.gis.models import SpatialRefSys
+    from django.contrib.gis.gdal import SpatialReference
+
+    if not isinstance(srs, SpatialReference):
+        srs = SpatialReference(srs)
+
+    if srs.srid is None:
+        raise Exception('Spatial reference requires an SRID to be compatible with PostGIS.')
+   
+    # Creating the spatial_ref_sys model.
+    sr, created = SpatialRefSys.objects.get_or_create(
+        srid=srs.srid, auth_name='EPSG', auth_srid=srs.srid, 
+        srtext=srs.wkt, proj4text=srs.proj4)