Package: django-pyodbc-gis
This driver implements basic GIS (geodjango) support for Microsoft SQL
Server, built on top ofdjango-pyodbc-azure.It should be considered very alpha-quality at this stage!  Feedback,
issues, and patches are all very welcome.Supported and unsupported operationsMostpossible operationsare supported.  The primary exceptions are
those that include the boundary itself, and convenience operations
such asleft/right,overlaps_above, etc.The following spatial lookups arenotsupported:bounding-box related:contains_properly,covered_by,coversspecialist positional:left,right,overlaps_left,overlaps_right,overlaps_above,overlaps_below,strictly_above,strictly_belowmiscellaneous:dwithin,exact,relate,same_asThe following spatial aggregate operations arenotsupported:extent3dandmake_lineIn addition, for performance reasons not all geometry operations have
a corresponding geography analogue.  The following operations arenotavailable on geography types:bbcontains,bboverlaps,contained,crosses,touchesLimitations of SQL ServerSQL Server is OGC compliant, but  does fall short of the functionality
provided byPostGISandOracle Spatial.  In particular, all of the
boundary inclusion operations are missing: for example,containsis
supported, but notcovers.Type information is also slightly different in SQL Server.  Instead of
keeping the geometry type (Point, Polygon, etc) in the column’s
metadata, it is a property of theinstance(and hence so is the
dimensionality), and similarly for the SRID.  This means you can in
theory store geometries of different types and SRIDs in the same
column; this driver creates a constraint to check the type, but
nothing else.  It also means that introspection is rather fragile.Geometries cannot be transformed to a different SRID (such as withST_Transformin PostGIS).Admin InterfaceThe admin interface works.  This is worth noting here simply because
the interface has to be pretend to be MySQL in order to run!  There
are some hard-coded checks for MySQL in the framework, and the
limitations (with respect to introspection) of SQL Server are actually
similar enough that this works for SQL Server too.Installation and SetupThe only direct dependency isdjango-pyodbc-azure.  If you are on
linux this will require installingfreetdsandodbcinst.  You will
also need toconfigureit (the most important isodbcinst.ini).To use the driver, your Django database configuration section should
look something like this:DATABASES = {
    'default': {
        'NAME': 'dbname',
        'ENGINE': 'django_pyodbc_gis',
        'HOST': '127.0.0.1,1433',
        'USER': 'django',
        'PASSWORD': 'pwd123',
        'OPTIONS': {
            'host_is_server': True,
            # 'dsn': 'mssql',
            'extra_params': 'TDS_Version=8.0'
        }
    }
}You have two options regarding specifying the host connection details;
if you have configured a DSN you may omit theHOSTkey and use thedsnkey inOPTIONSto specify it.  If not, you will probably
need to specify the TDS version inextra_params(if you get error
messages aboutunicodeyou may well have gotten this wrong)TODOextended operations (gml, geojson, etc.  Further investigation: SQL
Server only supports GML, but treats it as an instance method
where-as geodjango assumes it is a function.  This might remain on
the back-burner for now)Check inspectdb supportTest suite!
* Test against 2008, 2005 as well