diff options
| author | Justin Bronn <jbronn@gmail.com> | 2010-05-04 21:43:40 +0000 |
|---|---|---|
| committer | Justin Bronn <jbronn@gmail.com> | 2010-05-04 21:43:40 +0000 |
| commit | 402f8cede599950d44be9db03f3fd1e46e3dbaba (patch) | |
| tree | 4ac36c56c9d75466dac4507ab1984f0eadd9b8ee /docs/ref | |
| parent | 41ccfa15d7f5ab96147e2f44ba6f24dc61611eda (diff) | |
Fixed #13315, #13430 -- Recreated `django.contrib.gis.db.backend` module with `SpatialBackend` alias and added `Adaptor` alias for backwards-compatibility purposes; added GeoDjango 1.2 backwards-incompatibility documentation and release notes; added a section in the docs about how MySQL is a crippled spatial database; updated versions in install docs.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13097 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'docs/ref')
| -rw-r--r-- | docs/ref/contrib/gis/db-api.txt | 55 | ||||
| -rw-r--r-- | docs/ref/contrib/gis/install.txt | 18 |
2 files changed, 56 insertions, 17 deletions
diff --git a/docs/ref/contrib/gis/db-api.txt b/docs/ref/contrib/gis/db-api.txt index 0959156c43..6797ce2de0 100644 --- a/docs/ref/contrib/gis/db-api.txt +++ b/docs/ref/contrib/gis/db-api.txt @@ -23,13 +23,16 @@ its functionality into full-fledged spatial database backends: * :mod:`django.contrib.gis.db.backends.oracle` * :mod:`django.contrib.gis.db.backends.spatialite` -Backwards-Compatibility ------------------------ +Database Settings Backwards-Compatibility +----------------------------------------- -For those using the old database settings (e.g., the ``DATABASE_*`` settings) -Django 1.2 will automatically use the appropriate spatial backend as long -as :mod:`django.contrib.gis` is in your :setting:`INSTALLED_APPS`. For -example, if you have the following in your settings:: +In :ref:`Django 1.2 <releases-1.2>`, the way +to :ref:`specify databases <specifying-databases>` in your settings was changed. +The old database settings format (e.g., the ``DATABASE_*`` settings) +is backwards compatible with GeoDjango, and will automatically use the +appropriate spatial backend as long as :mod:`django.contrib.gis` is in +your :setting:`INSTALLED_APPS`. For example, if you have the following in +your settings:: DATABASE_ENGINE='postgresql_psycopg2' @@ -41,9 +44,37 @@ example, if you have the following in your settings:: ... ) -Then, :mod:`django.contrib.gis.db.backends.postgis` will automatically be used as your +Then, :mod:`django.contrib.gis.db.backends.postgis` is automatically used as your spatial backend. +.. _mysql-spatial-limitations: + +MySQL Spatial Limitations +------------------------- + +MySQL's spatial extensions only support bounding box operations +(what MySQL calls minimum bounding rectangles, or MBR). Specifically, +`MySQL does not conform to the OGC standard <http://dev.mysql.com/doc/refman/5.1/en/functions-that-test-spatial-relationships-between-geometries.html>`_: + + Currently, MySQL does not implement these functions + [``Contains``, ``Crosses``, ``Disjoint``, ``Intersects``, ``Overlaps``, + ``Touches``, ``Within``] + according to the specification. Those that are implemented return + the same result as the corresponding MBR-based functions. + +In other words, while spatial lookups such as :lookup:`contains <gis-contains>` +are available in GeoDjango when using MySQL, the results returned are really +equivalent to what would be returned when using :lookup:`bbcontains` +on a different spatial backend. + +.. warning:: + + True spatial indexes (R-trees) are only supported with + MyISAM tables on MySQL. [#fnmysqlidx]_ In other words, when using + MySQL spatial extensions you have to choose between fast spatial + lookups and the integrity of your data -- MyISAM tables do + not support transactions or foreign key constraints. + Creating and Saving Geographic Models ===================================== Here is an example of how to create a geometry object (assuming the ``Zipcode`` @@ -307,4 +338,12 @@ Method PostGIS Oracle SpatiaLite .. [#fngeojson] *See* Howard Butler, Martin Daly, Allan Doyle, Tim Schaub, & Christopher Schmidt, `The GeoJSON Format Specification <http://geojson.org/geojson-spec.html>`_, Revision 1.0 (June 16, 2008). .. [#fndistsphere14] *See* `PostGIS 1.4 documentation <http://postgis.refractions.net/documentation/manual-1.4/ST_Distance_Sphere.html>`_ on ``ST_distance_sphere``. .. [#fndistsphere15] *See* `PostGIS 1.5 documentation <http://postgis.refractions.net/documentation/manual-1.5/ST_Distance_Sphere.html>`_ on ``ST_distance_sphere``. -.. [#] MySQL only supports bounding box operations (known as minimum bounding rectangles, or MBR, in MySQL). Thus, spatial lookups such as :lookup:`contains <gis-contains>` are really equivalent to :lookup:`bbcontains`. +.. [#fnmysqlidx] *See* `Creating Spatial Indexes <http://dev.mysql.com/doc/refman/5.1/en/creating-spatial-indexes.html>`_ + in the MySQL 5.1 Reference Manual: + + For MyISAM tables, ``SPATIAL INDEX`` creates an R-tree index. For storage + engines that support nonspatial indexing of spatial columns, the engine + creates a B-tree index. A B-tree index on spatial values will be useful + for exact-value lookups, but not for range scans. + +.. [#] Refer :ref:`mysql-spatial-limitations` section for more details. diff --git a/docs/ref/contrib/gis/install.txt b/docs/ref/contrib/gis/install.txt index 55883d8ba5..00d4e62e9f 100644 --- a/docs/ref/contrib/gis/install.txt +++ b/docs/ref/contrib/gis/install.txt @@ -150,13 +150,13 @@ directly from Python using ctypes. First, download GEOS 3.2 from the refractions website and untar the source archive:: - $ wget http://download.osgeo.org/geos/geos-3.2.1.tar.bz2 - $ tar xjf geos-3.2.1.tar.bz2 + $ wget http://download.osgeo.org/geos/geos-3.2.2.tar.bz2 + $ tar xjf geos-3.2.2.tar.bz2 Next, change into the directory where GEOS was unpacked, run the configure script, compile, and install:: - $ cd geos-3.2.1 + $ cd geos-3.2.2 $ ./configure $ make $ sudo make install @@ -273,9 +273,9 @@ supports :ref:`GDAL's vector data <ref-gdal>` capabilities [#]_. First download the latest GDAL release version and untar the archive:: - $ wget http://download.osgeo.org/gdal/gdal-1.7.1.tar.gz - $ tar xzf gdal-1.7.1.tar.gz - $ cd gdal-1.7.1 + $ wget http://download.osgeo.org/gdal/gdal-1.7.2.tar.gz + $ tar xzf gdal-1.7.2.tar.gz + $ cd gdal-1.7.2 Configure, make and install:: @@ -516,9 +516,9 @@ user. For example, you can use the following to become the ``postgres`` user:: The location *and* name of the PostGIS SQL files (e.g., from ``POSTGIS_SQL_PATH`` below) depends on the version of PostGIS. - PostGIS versions 1.3 and below use ``<sharedir>/contrib/lwpostgis.sql``, whereas - versions 1.4 and 1.5 use ``<sharedir>/contrib/postgis-1.4/postgis.sql`` and - ``<sharedir>/contrib/postgis-1.5/postgis.sql``, respectively. + PostGIS versions 1.3 and below use ``<pg_sharedir>/contrib/lwpostgis.sql``; + whereas version 1.4 uses ``<sharedir>/contrib/postgis.sql`` and + version 1.5 uses ``<sharedir>/contrib/postgis-1.5/postgis.sql``. The example below assumes PostGIS 1.5, thus you may need to modify ``POSTGIS_SQL_PATH`` and the name of the SQL file for the specific |
