MsJSON - ein UMN Mapserver zu JSON Konverter

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

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!
Antworten