Seite 1 von 1

MsJSON - ein UMN Mapserver zu JSON Konverter

Verfasst: Dienstag 2. August 2011, 12:49
von frabron
Hallo,

mein hier vorgestelltes Package konvertiert Konfigurationsdateien des UMN Mapserver nach JSON oder von JSON in das Mapserver Format. Die Konfigurationsdateien sollen online bearbeitbar werden, und dazu muss ein parsebares Format her. Man benötigt die Python Mapserver Bibliotheken (python-mapscript) zur Funktionalität.
Es existiert eine Dokumentation (hooray for Sphinx :)), (Nose-)Tests und, aufgrund der Dokumentation, auch über reichliche Docstrings im Quelltext. Da ja hier auch hin und wieder Geographen/Geoinformatiker ihr Unwesen treiben finden sich ja evt. auch einge Interessierte, die das Package mal testen wollen ;)

Ein einfaches Beispiel:

Code: Alles auswählen

# coding: utf-8

from __future__ import with_statement
import codecs
import os
import mapscript
from msjson import Map
try:
    import json
except ImportError:
    import simplejson as json


def main():
    ms = mapscript.mapObj('/mnt/e033/mapconf/PNDO/pndo.map')
    m = Map(mapscript_=ms)
    m.mapfile_encoding = 'cp1252'

    with codecs.open('map.json', 'w', encoding='utf-8') as output:
        json.dump(m.to_json(), output, indent=4)

    with codecs.open('map.json', 'r', encoding='utf-8') as input_:
        foo = json.load(input_)

    m.mapscript.save(os.path.join(os.path.dirname(__file__), 'foo.map'))


if __name__ == '__main__':
    main()

Das Package ist noch nicht zu 100% vollständig, es fehlen noch einige Parameter der Mapserver Konfiguration, doch es sollte bereits mehr als eine Richtung des Möglichen vorgeben.

Projekt auf Bitbucket
Dokumentation

Im Besonderen möchte ich noch Lunar für seine Github Projekte danken, da ich dort prima Anregungen in Bezug auf Docstrings, rst, Sphinx und viele andere Dinge fand, die zur Projektpublikation unerlässlich sind - auch wenn das wahrscheinlich nicht seine Intention war. Trotzdem danke dafür!