Skip to content

mrmap-community/xplanung_light

Repository files navigation

Einführung

Einfache Django-Anwendung zur Verwaltung und Publikation kommunaler Pläne und Satzungen. Das Datenmodell orientiert sich an dem deutschen Standard XPlanung - aktuelles (Modell 6.1)[https://xleitstelle.de/releases/objektartenkatalog_6_1]. Zur Publikation werden OGC-konforme Dienste genutzt, die kompatibel zu den Vorgaben der GDI-DE sind. Die Dienste selbst basieren auf Mapserver. Dieser ist in django in Form eines simplen Proxys auf Basis von python3-mapscript integriert.

Die initiale Entwicklung des Systems ist in einem Tutorial dokumentiert, dass sich gut eignet die Funktionsweise und Möglichkeiten von Geodjango näher kennenzulernen:

Geodjango Tutorial

Testphase

In Rheinland-Pfalz befindet sich die Software gerade in einer Testphase. Einige Kommunen haben schon einen Administrativen Zugriff auf das System. Falls Interesse besteht, kann man sich registrieren und einen Online-Antrag auf Freischaltung für eine Gebietskörperschaft stellen 😉 .

Prototyp im GeoPortal.rlp

Installation unter Debian 11 und 12

Als root

apt install binutils libproj-dev gdal-bin spatialite-bin libsqlite3-mod-spatialite python3-mapscript python3-venv

Als normaler Nutzer

Vorbereitung

git clone https://github.com/mrmap-community/xplanung_light.git
cd xplanung_light/
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt

Für Debian 12 wird mapscript 8.0.0 benötigt!

python3 -m pip install mapscript==8.0.0

Debian 11

cd .venv/lib64/python3.9/site-packages/mapscript
cp /usr/lib/python3/dist-packages/mapscript/_mapscript.cpython-39-x86_64-linux-gnu.so _mapscript.so

Debian 12

cd .venv/lib64/python3.11/site-packages/mapscript
cp /usr/lib/python3/dist-packages/mapscript/_mapscript.cpython-311-x86_64-linux-gnu.so _mapscript.so
cd ../../../../../
python3 manage.py shell -c "import django;django.db.connection.cursor().execute('SELECT InitSpatialMetaData(1);')";
python3 manage.py migrate
python3 manage.py collectstatic
python3 manage.py createsuperuser
python3 manage.py runserver

Zur Erstellung von Plänen muss mindestens eine AdministrativeOrganization (XPlan Objekt: XP_Gemeinde) existieren. Die Gebietskörperschaften von RLP lassen sich über einen django-admin-Befehl importieren (Dauer ~10min - es werden dabei auch die Gebietsgrenzen über OGC API Features Schnittstellen ergänzt), sie können aber auch über das Admin-Backend händisch angelegt werden.

In einer neuen shell im xplanung_light Verzeichnis

source .venv/bin/activate
python3 manage.py importorganisations Kommunalverwaltungen_01.01_2025.xlsm

Der Prozess kann mehrfach gestartet werden. Das AdministrativeOrganization-model ist historisiert und die Objekte werden beim neuen Import aktualisiert.

Ausprobieren

Startseite

Viel Spass

Wechsel von spatialite zu PostGIS

Debian 11

Installieren der Betriebssystempakete

apt install postgresql-13 postgresql-13-postgis-3 postgresql-server-dev-13 python3-psycopg2

Einrichten der Test-Datenbank

sudo -u postgres psql -p 5432 -c "CREATE USER geodjango PASSWORD 'geodjango_password';"
su - postgres -c "createdb -p 5432 -E UTF8 xplanung_light -T template0"
sudo -u postgres psql -p 5432 -d xplanung_light -c "CREATE EXTENSION postgis;"
sudo -u postgres psql -p 5432 -c "ALTER DATABASE xplanung_light OWNER TO geodjango;"

Anpassung der settings.py

"""
DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.spatialite',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
"""

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'xplanung_light',
        'USER': 'geodjango',
        'PASSWORD': 'geodjango_password',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

Konfiguration der Zugangsberechtigungen für die Datenbank

vi /etc/postgresql/13/main/pg_hba.conf

Folgendermaßen anpassen

  #...
  # TYPE  DATABASE        USER            ADDRESS                 METHOD

  # "local" is for Unix domain socket connections only
  local   all             postgres                                peer
  # IPv4 local connections:
  #...
  host    xplanung_light    geodjango       127.0.0.1/32          md5
  #...
  # IPv6 local connections:
  #...
  host    xplanung_light    geodjango       ::1/128               md5 
  #...

Datenbank neu starten

/etc/init.d/postgresql restart

Initialisieren der Datenbank

Da die neue Datenbank zunächst leer ist

source .venv/bin/activate
python3 manage.py migrate
python3 manage.py createsuperuser

Projekt auf OpenCode.de

OpenCode.de

About

Software zur Verwaltung und Publikation kommunaler Pläne und Satzungen im Format XPlanung

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors