Mercurial > mxd2map
diff contrib/python/foobar.py @ 114:93699e8f2d1f
contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py:
Added some sample-scripts for working with MXD-files
author | Stephan Holl <stephan.holl@intevation.de> |
---|---|
date | Wed, 15 Jun 2011 16:13:32 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/python/foobar.py Wed Jun 15 16:13:32 2011 +0200 @@ -0,0 +1,68 @@ +# Author: ESRI +# Date: July 5, 2010 +# Version: ArcGIS 10.0 +# Summary: This script will add a layer file into a map document. The script +# must be run from within ArcMap because it references the CURRENT +# map document. The purpose of the script is to create a user +# friendly tool that allows users to simply add a layer from a list +# of existing layer files all stored in a common location. A validation +# script is used to automatically populate two of the parameters. +# The parameters are: +# 1) Browse to a folder that contains layer files. This could be +# hard coded within the validation script eliminating the need +# for entering this parameter. +# 2) Select a layer file from the list. This is auto populated +# using a validation script. +# 3) Select a data frame. This is also auto populated using a +# validation script. +# 4) Select one of 3 placement positions. +# +# Note: This script tool will only work if background processing is disabled. +# because CURRENT is being used. +# Note: To run the script from ArcMap either run the script tool from the +# Catalog window from within ArcMap or add the script tool into the UI +# via the customize dialog box [Geoprocessing Tools]. + +import arcpy +import shlex, subprocess + +#Helper for executing an external shell-scrip or programm +def executeCommand(command): + success = False + try: + args = shlex.split(command) + p = subprocess.Popen(args) + p.wait() + + returnCode = p.returncode + + if (returnCode == 0): + success = True + else: + print "Subproccess terminates with %s. This is an error"\ + % returnCode + except OSError, err: + success = False + + return success + +try: + #Read parameters from dialog + inputMXD = arcpy.GetParameterAsText(0) + outputMXD = arcpy.GetParameterAsText(1) + template = arcpy.GetParameterAsText(2) + + print "InputMXD: %s,\nOutputMXD: %s" % (inputMXD, outputMXD) + + # execute Java-command for converting + javacmd = "-Dmapserver.library.name=lib/mapscript -jar mxd-testbed_sh.jar" + javafiles = "-mxd %s -map %s -template %s " % (inputMXD, outputMXD, template) + + cmd = "java "+ javafiles + javacmd + print cmd + executeCommand(cmd) + +except Exception, e: + import traceback + map(arcpy.AddError, traceback.format_exc().split("\n")) + arcpy.AddError(str(e))