# HG changeset patch # User Stephan Holl # Date 1311320747 -7200 # Node ID 0c58db91311cdbd5e397a478d469a0ee8c89be84 # Parent 448a2fd085e0d775b733a7a535fce8c737de21cb * contrib/python/generateHTML.py: New. Script for generating a HTML-page with links to mapfiles. Useful when converting a bunch of MXD-files to mapfiles in order to test. It generates an OpenLayers-Link for every included layer though. diff -r 448a2fd085e0 -r 0c58db91311c ChangeLog --- a/ChangeLog Thu Jul 21 17:28:52 2011 +0200 +++ b/ChangeLog Fri Jul 22 09:45:47 2011 +0200 @@ -1,3 +1,11 @@ +2011-07-22 Stephan Holl + + * contrib/python/generateHTML.py: New. Script for generating a + HTML-page with links to mapfiles. Useful when converting a bunch + of MXD-files to mapfiles in order to test. + + It generates an OpenLayers-Link for every included layer though. + 2011-07-21 Raimund Renkert * src/java/de/intevation/mxd/writer/MapScriptWriter.java: diff -r 448a2fd085e0 -r 0c58db91311c contrib/python/generateHTML.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/python/generateHTML.py Fri Jul 22 09:45:47 2011 +0200 @@ -0,0 +1,120 @@ +#!/usr/bin/env python +# +# (C) 2011, Intevation GmbH, Stephan Holl +# +# +# Generate a HTML-Page based on a recursive folder structure of generated +# mapfiles from MXD2map +# +# +# Usage: generateHTML.py > output.html + + +import os + +# this is intended to run in the folder where the generates mapfiles are +# stored: +rootdir = os.getcwd() + '/map-test-2' +debug = False + +# adopt for you needs: +url = 'http://localhost/cgi-bin/mapserv.exe' +getmap = url + '?Request=GetMap&Service=WMS&Version=1.1.1' +getmap += '&srs=EPSG:4326&width=800&height=600&format=image/png&styles=' + +def writeHeader(): + print ''' + +MXD2map-examples + + + +

Verfuegbare MXD-Dateien

+''' + +def writeFooter(): + content = "" + print content + +def writeLayers(mapfile, layers, extent): + basename = os.path.basename(mapfile) + print '''
  • Layer: %s
  • +
    +Anzahl der Layer: %s +''' % (basename, len(layers)) + i = 0 + print "
      " + while i < len(layers): + urlmapfile = url + '?map=' + mapfile + urlmapfile += '&template=openlayers&mode=browse&layers=' + layers[i] + gm = getmap + '&map=' + mapfile + '&layers=' + layers[i] + if extent: + ext = str(extent).strip('[\'\'\\r\\n]') + gm += '&bbox='+''.join(ext) + print "
    • %s | WMS GetMap
    • " % (urlmapfile, layers[i], gm) + i=i+1 + print "
    " + +def writeGroups(mapfile,groups): + if len(groups) > 1: + print "Anzahl der Gruppen: %s" % len(groups) + i = 0 + print "
      " + while i < len(groups): + urlmapfile = url + '?map=' + mapfile + urlmapfile += '&template=openlayers&mode=browse&layers=' + groups[i] + print "
    • %s
    • " % (urlmapfile, groups[i]) + i=i+1 + print "
    " + +def main(): + writeHeader() + for root, subFolders, files in os.walk(rootdir): + for file in files: + f = os.path.join(root, file) + if os.path.isfile(f): + basename, extension = os.path.splitext(f) + if extension.lower() == ".map": + if "orig" in f: + # do not generate links for -orig.map-files + continue + if debug: + print "Bearbeite Dokument %s" % f + #read file and search for wms_title + layers = [] + groups = [] + extent = [] + for line in open(f): + if "wms_title" in line: + #print line + la = line.strip()[12:].replace('"','') + if la != "Layers": + layers.append(la) + if "GROUP" in line: + gr = line.strip()[6:].replace('"','') + if gr not in groups: + groups.append(gr) + if "EXTENT" in line: + ext = line[9:].replace('"','').replace(' ', ',') + extent.append(ext) + + print "
      " + writeLayers(f, layers, extent) + print "
    " + + # write groups + print "
      " + writeGroups(f, groups) + print "
    " + if debug: + print "Layer %s hat %s Layer" % (f, len(layers)) + print "Layer %s hat %s Gruppen" % (f, len(groups)) + + writeFooter() + +main()