Mercurial > mxd2map
changeset 208:0c58db91311c
* 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.
author | Stephan Holl <stephan.holl@intevation.de> |
---|---|
date | Fri, 22 Jul 2011 09:45:47 +0200 |
parents | 448a2fd085e0 |
children | 1d7fc059e538 d0acdab62b03 |
files | ChangeLog contrib/python/generateHTML.py |
diffstat | 2 files changed, 128 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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 <stephan.holl@intevation.de> + + * 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 <raimund.renkert@intevation.de> * src/java/de/intevation/mxd/writer/MapScriptWriter.java:
--- /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 <stephan.holl@intevation.de> +# +# +# 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 '''<html> +<head> +<title>MXD2map-examples</title> +<style> +body { + font-family: arial, sans-serif; + font-size: 12pt; +} +</style> +</head> +<body> +<h1>Verfuegbare MXD-Dateien</h1> +''' + +def writeFooter(): + content = "</body></html>" + print content + +def writeLayers(mapfile, layers, extent): + basename = os.path.basename(mapfile) + print '''<li>Layer: <strong>%s</strong></li> +<br> +Anzahl der Layer: %s +''' % (basename, len(layers)) + i = 0 + print "<ul>" + 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 "<li><a target='_new' href='%s'>%s</a> | <a target='_new' href='%s'>WMS GetMap</a></li>" % (urlmapfile, layers[i], gm) + i=i+1 + print "</ul>" + +def writeGroups(mapfile,groups): + if len(groups) > 1: + print "Anzahl der Gruppen: %s" % len(groups) + i = 0 + print "<ul>" + while i < len(groups): + urlmapfile = url + '?map=' + mapfile + urlmapfile += '&template=openlayers&mode=browse&layers=' + groups[i] + print "<li><a href='%s'>%s</a></li>" % (urlmapfile, groups[i]) + i=i+1 + print "</ul>" + +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 "<ul>" + writeLayers(f, layers, extent) + print "</ul>" + + # write groups + print "<ul>" + writeGroups(f, groups) + print "</ul>" + if debug: + print "Layer %s hat %s Layer" % (f, len(layers)) + print "Layer %s hat %s Gruppen" % (f, len(groups)) + + writeFooter() + +main()