GeoDjango Installation

Es ist mir endlich gelungen GeoDjango zu installieren. Um diesen Meilenstein festzuhalten hier also eine kleine Anleitung, wie ich vorgegangen bin. Dieses kurze Tutorial beschreibt lediglich meine Vorgehensweise und kann bei jedem abhängig von Betriebssystem und verwendeter Datenbank völlig anders aussehen.

Zunächst ist eine lauffähige Installation von Django 1.2 nötig. Vorher geht nämlich garnix. Ein sehr gutes Tutorial, um auch dies zu bewerkstelligen ist tatsächlich das auf der englischsprachigen Homepage von Django.

Folgende Ausgangssituation lag bei mir vor:

  • Betriebssystem: Ubuntu 11.04 Natty Narwhal
  • Django Version 1.2 auf dem lokalen Rechner (keine Virtualisierung)

Als ersten Schritt zur Installation von Geodjango ist es leider nötig ein paar Pakete von Hand zu installieren. Dies geschieht jedoch bei Ubuntu sehr einfach und schnell via apt-get in der Konsole:

GDAL:

sudo apt-get install libgdal1-1.8.0 gdal-bin python-gdal

PROJ4:

sudo apt-get install proj proj-bin

GEOS:

sudo apt-get install libgeos-3.2.2 libgeos-c1

spatialite:

sudo apt-get install spatialite-bin python-pysqlite2

binutils & setuptools:

sudo apt-get install binutils python-setuptools

Als zweiten Schritt müssen in der Datei settings.py mehrere Änderungen vorgenommen werden:

gis backend engine:

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.spatialite',
        'NAME': '/home/micha/entwicklung/Django-Projekt/
            geodjango2.db',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}

Pfad zum gis-schema für geodatenbanken unter sqlite:

SPATIALITE_SQL='/home/micha/entwicklung/Django-Projekt/init_spatialite-2.3.sql'

GIS-Funktionalität zu den Installed Apps hinzufügen

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.gis',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)

Ist dies alles geschafft, geht es nur noch darum die Datenbank zu synchronisieren. Wird nun der Development server gestartet sollte in etwa folgendes zu sehen sein:

$ python manage.py runserver

SpatiaLite version ..: 2.4.0     Supported Extensions:
        - 'VirtualShape'         [direct Shapefile access]
        - 'VirtualDbf'           [direct Dbf access]
        - 'VirtualText'          [direct CSV/TXT access]
        - 'VirtualNetwork'       [Dijkstra shortest path]
        - 'RTree'                [Spatial Index - R*Tree]
        - 'MbrCache'             [Spatial Index - MBR cache]
        - 'VirtualFDO'           [FDO-OGR interoperability]
        - 'SpatiaLite'           [Spatial SQL - OGC]
PROJ.4 Rel. 4.7.1, 23 September 2009
GEOS version 3.2.2-CAPI-1.6.2
0 errors found

Django version 1.2.5, using settings 'Django-Project.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.

Als weiteren Schritt empfehle ich das Geodjango Tutorial