app/django/contrib/gis/utils/srs.py
author Lennard de Rijk <ljvderijk@gmail.com>
Fri, 23 Jan 2009 17:07:54 +0000
changeset 928 df051fc9d7a1
parent 323 ff1a9aa48cfd
permissions -rw-r--r--
Replaced the boolean properties in soc/models/request.py with a state property. new : new Request group_accepted : The group has accepted this request completed : This request has been handled either following a creation of the role entity rejected : This request has been rejected by either the user or the group ignored : The request has been ignored by the group and will not give the user access to create the role Patch by: Lennard de Rijk Reviewed by: to-be-reviewed

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)