# HG changeset patch # User Stephan Holl # Date 1309430427 -7200 # Node ID 3ac0968e26f31775de619a2f396f06c7a1c47b4c # Parent f4ad6a74e4efc806da0707291ee952411782e7b3# Parent 1618d68cb723aeb629e1b36666dd2fa4b1bcf789 merged with Karls repo from website diff -r 1618d68cb723 -r 3ac0968e26f3 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,4 @@ +syntax: regexp +^mapserver/logs/ +^tmp/ +^doku/build/ diff -r 1618d68cb723 -r 3ac0968e26f3 ChangeLog --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ChangeLog Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,1185 @@ +2011-06-29 Stephan Holl + + * ttf-fonts/DejaVuSans.ttf: New. + * ttf-fonts/fonts.txt: Added FreeSans-Font as fallback for + displaying Labels + +2011-06-29 Stephan Holl + + * mxd/Styles/label/*: Added two examples to show basic labeling + within an MXD. More will not be supported though. + +2011-06-27 Raimund Renkert + + * src/java/de/intevation/mxd/writer/FillStyleWriter.java, + src/java/de/intevation/mxd/writer/LineStyleWriter.java, + src/java/de/intevation/mxd/writer/MapScriptWriter.java, + src/java/de/intevation/mxd/writer/MarkerStyleWriter.java, + src/java/de/intevation/mxd/writer/SymbolWriter.java: + Exception handling for number conversions in writer modules. + +2011-06-27 Raimund Renkert + + * src/java/de/intevation/mxd/writer/CartoLineSymbolReader.java: + Fixed exception handling for this reader. + +2011-06-27 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Write symbol styles in reverse order to the mapfile. + + * src/java/de/intevation/mxd/writer/LineStyleWriter.java, + src/java/de/intevation/mxd/writer/MarkerStyleWriter.java: + Create the symbol first, then set symbolname for style. + + * src/java/de/intevation/mxd/writer/SymbolWriter.java: + Test if symbol exists. If not exists, write new symbol with new + name. + +2011-06-24 Stephan Holl + + * INSTALL.txt: added a hint how to install the converter and its + requirements. + * doku/source/conf.py, doku/source/INSTALL.txt, + doku/source/index.txt,doku/source/restrictions.txt, + doku/source/index.rst,doku/source/restrictions.rst: renamed .rst to + .txt, linked INSTALL.txt from root into the docs. + +2011-06-24 Stephan Holl + + + * doku/Makefile, doku/source/conf.py, doku/source/index.rst, + doku/source/restrictions.rst: New. added stub for creating a + documentation. + +2011-06-24 Stephan Holl + + * moved README.txt to mxd/README_testbed.txt + +2011-06-23 Raimund Renkert + + * src/java/de/intevation/mxd/utils/MapToXMLUtils.java, + src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Done some minor reformatings. + +2011-06-22 Raimund Renkert + + * src/java/de/intevation/mxd/reader/CartoLineSymbolReader.java: + Read mark and gap values from cartographic line template. + + * src/java/de/intevation/mxd/writer/LineStyleWriter.java: + Create and write pattern from mark and gap values. + +2011-06-22 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/CartoLineSymbolReader.java, + src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/FeatureLayerReader.java, + src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java, + src/java/de/intevation/mxd/reader/HashLineSymbolReader.java, + src/java/de/intevation/mxd/reader/LineFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerFillSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureLineSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleLineSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java: + Updated the default values and reader error handling. + +2011-06-22 Raimund Renkert + + * src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java: + Split comma separated value list into single values. + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Handle join tables and create class expressions correctly for + multiple values and string values. + +2011-06-21 Raimund Renkert + + * src/java/de/intevation/mxd/reader/FeatureLayerReader.java: + Abort layer reading and remove layer element on error. + + * src/java/de/intevation/mxd/reader/MXDReader.java: + Handle empty layer. + + * src/java/de/intevation/mxd/utils/MapToXMLUtils.java: + Added removeLayer method to remove a broken layer from DOM. + +2011-06-20 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapscriptWriter.java: + Remove all whitespaces in layer name. + +2011-06-20 Raimund Renkert + + * src/java/de/intevation/mxd/writer/FillStyleWriter.java, + src/java/de/intevation/mxd/writer/LineStyleWriter.java: + Do not write lines or outlines if their width is smaller than 1.0. + +2011-06-20 Raimund Renkert + + * src/java/de/intevation/mxd/reader/FeatureLayerReader.java: + Read additional information for sde data connections. + + * src/java/de/intevation/mxd/writer/MapscriptWriter.java: + Write sde data connection information to mapfile. + +2011-06-20 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Insert TEMPLATE entry for GFI request. + +2011-06-20 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Insert metadata for layer title for getCapabilities request. + +2011-06-20 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Write expressions for string values to the mapfile. + +2011-06-17 Raimund Renkert + + Write the correct expression for double values. + + * src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java: + Read the lower bound of the breaks. + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Write expressions for double values as range to the mapfile. + +2011-06-17 Stephan Holl + + * mxd/projections/DHDN-projection-dataframe.mxd: Added testcase + with DHDN-3 within a dataframe + +2011-06-17 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java: + Read label for classes. + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Write the label as class name. + +2011-06-17 Raimund Renkert + + * src/java/de/intevation/mxd/writer/FillStyleWriter.java: + Write PATTERN for polygon outlines and hatch symbols. + +2011-06-17 Raimund Renkert + + * src/java/de/intevation/mxd/writer/LineStyleWriter.java: + Write PATTERN to style block. + The pattern array must be exactly 10 in length (filled up with 0) + and patternlength must be set to the count of pattern elements. + +2011-06-16 Raimund Renkert + + * src/java/de/intevation/mxd/reader/IReader.java, + src/java/de/intevation/mxd/reader/MXDReader.java, + src/java/de/intevation/mxd/reader/MapReader.java: + Exceptionhandling, default values and logging for map reader. + +2011-06-16 Raimund Renkert + + * conf/log4j.properties: Set console log level to INFO. + + * src/java/de/intevation/mxd/writer/FillStyleWriter.java, + src/java/de/intevation/mxd/writer/IWriter.java, + src/java/de/intevation/mxd/writer/LineStyleWriter.java, + src/java/de/intevation/mxd/writer/MapScriptWriter.java, + src/java/de/intevation/mxd/writer/MarkerStyleWriter.java, + src/java/de/intevation/mxd/writer/SymbolWriter.java: + Changed the exception handling. + + +2011-06-16 Raimund Renkert + + * conf/log4j.properties: Added console appender to log4j config. + +2011-06-16 Raimund Renkert + + Improved top level exception handling and logging. + + * src/java/de/intevation/mxd/Converter.java, + src/java/de/intevation/mxd/reader/FeatureLayerReader.java, + src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java, + src/java/de/intevation/mxd/reader/ILayerReader.java, + src/java/de/intevation/mxd/reader/MXDReader.java: + The converter stops if an error occured while reading the mxd file. + Replaced console output with a logger that writes to stdout. + +2011-06-16 Raimund Renkert + + * src/java/de/intevation/mxd/reader/FeatureLayerReader.java, + src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java, + src/java/de/intevation/mxd/reader/ILayerReader.java, + src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java: + Improved exception handling for layer reader. + +2011-06-15 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java, + src/java/de/intevation/mxd/reader/IRendererReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java, + src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java: + Improved exception handling. + +2011-06-15 Raimund Renkert + + Improved exception handling. + + * src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/CartoLineSymbolReader.java, + src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/FillSymbolReader.java, + src/java/de/intevation/mxd/reader/HashLineSymbolReader.java, + src/java/de/intevation/mxd/reader/ISymbolReader.java, + src/java/de/intevation/mxd/reader/LineFillSymbolReader.java, + src/java/de/intevation/mxd/reader/LineSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureLineSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleLineSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java: + If an exception is thrown while getting symbol attributes, a default + value is set to the attribute and a warning is written to the log + file. + +2011-06-15 Stephan Holl + + * contrib/python/FixWorkspacePaths.py, contrib/python/foobar.py: + Added some sample-scripts for working with MXD-files + +2011-06-14 Raimund Renkert + + * src/java/de/intevation/mxd/FeatureLayerReader.java: + Read SDE connection settings. + +2011-06-14 Raimund Renkert + + * src/java/de/intevation/mxd/ArcGISInitializer.java: + Load the arcobjects.jar from ArcGIS install folder. + +2011-06-14 Stephan Holl + + * mapserver/mapfile/mxd.map: Added ows_enable_request-directive to + allow OGC-services. + +2011-06-14 Stephan Holl + + * mxd/connections/SDE/sde_areas.txt: New. Added hints for + cconnecting to ArcSDE. + +2011-06-10 Raimund Renkert + + * src/java/de/intevation/mxd/ArcGISInitializer.java: + Check for ArcGISDesktop environment and added logging. + + * src/java/de/intevation/mxd/reader/MXDReader.java: + Check the initializer return value. + +2011-06-10 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Set TILEITEM to an empty string. + +2011-06-08 Raimund Renkert + + * src/java/de/intevation/mxd/writer/FillStyleWriter.java: + Write PATTERN to the style if a hatch symbol is used to fill a + polygon. + +2011-06-08 Raimund Renkert + + * src/java/de/intevation/mxd/reader/FeatureLayerReader.java: + Read the connection settings for file geodatabase. + +2011-06-07 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Set the class name to the layer name if it is empty. + +2011-06-01 Stephan Holl + * mapserver/symbols/symbols.sym: added a default hatch-symbol + +2011-06-01 Stephan Holl + + * M ttf-fonts/fonts.txt: Added a more verbose comment for removing + tspaces in font-aliases. + +2011-05-31 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Do not use LineStyleWriter cause it is not usable yet. + +2011-05-31 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Removed obsolete code. + + * src/java/de/intevation/mxd/writer/SymbolWriter.java: + Added method to save the symbolset. + +2011-05-31 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java: + Added "type" as XML attribute to symbols. + +2011-05-31 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Removed obsolete code. + +2011-05-31 Raimund Renkert + + * src/java/de/intevation/mxd/writer/IWriter.java, + src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Use the new classes to write the mapfile. Changed exception + handling(TODO: catch all exceptions in the writer). + + * src/java/de/intevation/mxd/writer/MarkerStyleWriter.java: + New. Write the styles for marker symbols. + + * src/java/de/intevation/mxd/writer/SymbolWriter.java: + New. Write symbols to the mapfile. + +2011-05-31 Raimund Renkert + + * src/java/de/intevation/mxd/Converter.java: + Instantiate the mapscript writer before loading the MXD file. + This is necessary because the ArcGIS-API changes the working directory + while loading the MXD file. + +2011-05-31 Raimund Renkert + + * src/java/de/intevation/mxd/reader/AbstractSymbolReader.java: + Get the correct logger. + + * src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java: + Fixed the extent for this class. + +2011-05-27 Raimund Renkert + + * src/java/de/intevation/mxd/reader/PictureLineSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java: + Added TODOs for picture symbols. + +2011-05-27 Raimund Renkert + + * src/java/de/intevation/mxd/reader/AbstractSymbolReader.java, + src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/CartoLineSymbolReader.java, + src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java, + src/java/de/intevation/mxd/reader/FeatureLayerReader.java, + src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java, + src/java/de/intevation/mxd/reader/HashLineSymbolReader.java, + src/java/de/intevation/mxd/reader/ILayerReader.java, + src/java/de/intevation/mxd/reader/ISymbolReader.java, + src/java/de/intevation/mxd/reader/LineFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureLineSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleLineSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java, + src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java: + Removed needless imports. + +2011-05-27 Raimund Renkert + + * src/java/de/intevation/mxd/reader/HashLineSymbolReader.java: + Use the Wrapper for line symbols to read the line. + +2011-05-27 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/CartoLineSymbolReader.java, + src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/HashLineSymbolReader.java, + src/java/de/intevation/mxd/reader/LineFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureLineSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleLineSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java: + All symbol reader now extend the abstract symbol reader. + +2011-05-27 Raimund Renkert + + Added line fill symbol reader. + + * src/java/de/intevation/mxd/reader/FillSymbolReader.java: + Use the new reader to get line fill symbol attributes. + + * src/java/de/intevation/mxd/reader/LineFillSymbolReader.java: + New. + +2011-05-27 Raimund Renkert + + Added marker fill symbol reader. + + * src/java/de/intevation/mxd/reader/FillSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerFillSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java: + Use the new reader to get marker fill symbol attributes. + + * src/java/de/intevation/mxd/reader/MarkerFillSymbolReader.java: + New. + +2011-05-26 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/CartoLineSymbolReader.java, + src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java, + src/java/de/intevation/mxd/reader/FeatureLayerReader.java, + src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java, + src/java/de/intevation/mxd/reader/HashLineSymbolReader.java, + src/java/de/intevation/mxd/reader/ILayerReader.java, + src/java/de/intevation/mxd/reader/IRendererReader.java, + src/java/de/intevation/mxd/reader/MXDReader.java, + src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureLineSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleLineSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java, + src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java: + Catch all exceptions in the MXDReader. + +2011-05-26 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java, + src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java: + Use the wrapper to read symbols. + +2011-05-26 Raimund Renkert + + Added wrapper for fill symbol reader. + + * src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java: + Use the wrapper to read the fill symbols. + + * src/java/de/intevation/mxd/reader/FillSymbolReader.java: + New. + + * src/java/de/intevation/mxd/reader/LineSymbolReader.java: + Added methods for the ILineSymbol interface. + +2011-05-26 Raimund Renkert + + Added wrapper for line symbol reader. + + * src/java/de/intevation/mxd/reader/ISymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java: + Use the new wrapper to read line symbols. + + * src/java/de/intevation/mxd/reader/LineSymbolReader.java: + New. + +2011-05-26 Raimund Renkert + + Added wrapper for marker symbol reader and extracted methods from symbol + readers. + + * src/java/de/intevation/mxd/reader/AbstractSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerSymbolReader.java: + New. + + * src/java/de/intevation/mxd/reader/ISymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java: + Removed obsolete code fragments. + +2011-05-26 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java, + src/java/de/intevation/mxd/reader/HashLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MXDReader.java, + src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerFillSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java: + Removed console outputs. + +2011-05-26 Raimund Renkert + + * src/java/de/intevation/mxd/reader/SimpleRendererReader.java: + Read multi layer fill symbols. + + * src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java: + Read attributes and outline. + + * src/java/de/intevation/mxd/reader/MultiLayerFillSymbolReader.java: + New. Reads fill symbols. + +2011-05-25 Raimund Renkert + + * src/java/de/intevation/mxd/reader/CartoLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureLineSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleLineSymbolReader.java: + Added constructor for ILineSymbols. + + * src/java/de/intevation/mxd/reader/HashLineSymbolReader.java: + Read the hash symbol. + +2011-05-25 Raimund Renkert + + * src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java: + Read hash line symbols using the new HashLineSymbolReader. + + * src/java/de/intevation/mxd/reader/HashLineSymbolReader.java: + New. Reads hash line symbols. + +2011-05-25 Raimund Renkert + + * src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java: + Read cartographic line symbols using the new CartoLineSymbolReader. + + * src/java/de/intevation/mxd/reader/CartoLineSymbolReader.java: + New. Reads cartographic line symbols. + +2011-05-24 Raimund Renkert + + * src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java: + Read picture line symbols using the new PictureSymbolReader. + + * src/java/de/intevation/mxd/reader/PictureLineSymbolReader.java: + New. Reads picture line symbols. + +2011-05-24 Raimund Renkert + + * src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java: + Read the marker line symbols using the new MarkerLineSymbolReader. + + * src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java: + Added constructor with IMarkerSymbol parameter. + + * src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.javai: + New. Reads marker line symbols. + +2011-05-24 Raimund Renkert + + * src/java/de/intevation/mxd/reader/FeatureLayerReader.java: + Set the layer type to line when reading a line layer. + + * src/java/de/intevation/mxd/reader/SimpleLineSymbolReader.java: + Added style option and renamed xml node "style" to "linestyle". + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Prepared the mapfile writer to write line symbols. + +2011-05-23 Raimund Renkert + + Added first line symbol reader. + + * src/java/de/intevation/mxd/reader/SimpleRendererReader.java: + Read line symbols with the new MultiLayLineSymbolReader. + + * src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleLineSymbolReader.java: + New. The MultiLayerLineSymbolReader reads lines from different layers + using the LineSymbolReader. + +2011-05-20 Raimund Renkert + + * src/java/de/intevation/mxd/reader/SimpleRendererReader.java: + Added TODO for line symbol reader. + +2011-05-20 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Write the symbols-file to the mapfile path. + +2011-05-20 Raimund Renkert + + * src/java/de/intevation/mxd/reader/FeatureLayerReader.java: + Read the workspace path. + + * src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java: + Added reader for picture marker symbols. + + * src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java: + New. Read picture symbols from mxd-file. + +2011-05-17 Raimund Renkert + + * src/java/de/intevation/mxd/reader/MapReader.java, + src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Set the projection "EPSG:31467" and units "METERS" as default if the + MXD values are unknown. + +2011-05-16 Raimund Renkert + + * build.xml: Set the classpath for the executabel jar file. The path to + the external libraries (lib/) is relative to the executable. + + * src/java/de/intevation/mxd/Converter.java: + Use commandline arguments to set the filenames for the MXD-, MAP- and + the template file. If no arguments are used, read the filenames from + the converter.properties file. + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Use the template file for mapfile creation. + + * converter.properties.sample: New. Example for the properties file. + +2011-05-16 Stephan Holl + + * doku/funktionsweise/Makefile, + doku/funktionsweise/funktionsweise-MXD-konverter.svg: New. Added + a schema how the converter works + +2011-05-11 Stephan Holl + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: Added + the (currently) hard-coded template-path to the + mapObj-constructor; removed some TODO-settings. + +2011-05-11 Stephan Holl + + * mapserver/rundir/Readme.txt: New. This is a folder containing the + MXD-files for conversion. The resulting MAP-file can be run from + here; all Paths are relative from here so request will find its + symbols, fonts, logfiles etc. + + * mapserver/mapfile/mapfile_header.include: Added SHAPEPATH for + the Visualization of the frida-shapefiles. + +2011-05-10 Stephan Holl + + * mapserver/mapfile/mapfile_header.include, mapserver/mapfile/mxd.map, + mapserver/symbols/symbols.sym: Optimized the mapfile to use as a + template when instantiating the new mapObj. + +2011-05-10 Stephan Holl + + * properties.xml: Adopt build-path to Windows-TMP-folder + +2011-04-20 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Created one method for each symbol type. + Write the character symbol attributes to the map. + +2011-04-20 Raimund Renkert + + * src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java: + Read all the font attributes. + +2011-04-19 Raimund Renkert + + Added CharacterMarkerSymbol reader and extracted the ArrowMarkerSymbol + reader. + + * src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java: + Extracted the ArrowMarkerSymbol. + * src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java: + New. + +2011-04-18 Raimund Renkert + + * src/java/de/intevation/mxd/reader/SimpleRendererReader.java: + Added MultiLayerMarkerSymbol support. + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Write ArrowMarker to the map. + + * src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java: + New. Reads multi layer marker symbols. + +2011-04-18 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java: + Added support for SimpleMarkerSymbol and SimpleFillSymbol. + +2011-04-18 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java, + src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java: + Create one renderer element in the dom for each mapserver class with its + attributes and expression. + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: Write the + expression for the mapserver class. + +2011-04-15 Raimund Renkert + + * src/java/de/intevation/mxd/ArcGISInitializer.java, + src/java/de/intevation/mxd/Converter.java, + src/java/de/intevation/mxd/reader/FeatureClassReader.java, + src/java/de/intevation/mxd/reader/FeatureLayerReader.java + src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java, + src/java/de/intevation/mxd/reader/MXDReader.java, + src/java/de/intevation/mxd/reader/MapReader.java, + src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java, + src/java/de/intevation/mxd/utils/MapToXMLUtils.java, + src/java/de/intevation/mxd/writer/IWriter.java, + src/java/de/intevation/mxd/writer/MapScriptWriter.java: + Added comments, done some code styling and removed typos. + +2011-04-15 Raimund Renkert + + * src/java/de/intevation/mxd/reader/FeatureLayerReader.java: + Read the data source name for layer objects. + + * src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java: + Changed color processing. + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + First implementation that generates valid mapfiles for simple point + mxdfiles. + +2011-04-14 Raimund Renkert + + Introduced MapScript writer. + + * M src/java/de/intevation/mxd/Converter.java: Added mapscript writer. + + * src/java/de/intevation/mxd/writer/IWriter.java, + src/java/de/intevation/mxd/writer/MapScriptWriter.java: + New. The MapScript writer uses the Java MapScript API to create a mapfile. + +2011-04-14 Raimund Renkert + + * src/java/de/intevation/mxd/reader/FeatureLayerReader.java: + Read the layer type. + + * src/java/de/intevation/mxd/reader/MXDReader.java: Updated the reader to + use the XML utilities here. + +2011-04-14 Raimund Renkert + + * src/java/de/intevation/mxd/reader/MapReader.java: + Read further map attributes. + +2011-04-14 Raimund Renkert + + * src/java/de/intevation/mxd/utils/MapToXMLUtils.java: + Added root element to document and save the filename in the XML tree. + +2011-04-13 Bjoern Schilberg + + * A contrib/sh/test_mxd.cgi + Added a new mapserver wrapper cgi script for testing of generated map + from bsh-mxd-converter. + +2011-04-12 Raimund Renkert + + * src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java, + src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java: + New. + + * src/java/de/intevation/mxd/reader/MXDReader.java: + Use new layer reader to get layer attributes. + + * src/java/de/intevation/mxd/reader/SimpleRendererReader.java: + Read symbol attributes using the new symbol reader. + +2011-04-12 Raimund Renkert + + * build.xml: Changed classname for converter entry point. + +2011-04-12 Raimund Renkert + + * src/java/de/intevation/mxd/Converter.java, + src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java, + src/java/de/intevation/mxd/reader/FeatureClassReader.java, + src/java/de/intevation/mxd/reader/FeatureLayerReader.java, + src/java/de/intevation/mxd/reader/MXDReader.java, + src/java/de/intevation/mxd/reader/MapReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java, + src/java/de/intevation/mxd/utils/MapToXMLUtils.java: + Removed needless imports. + +2011-04-12 Raimund Renkert + + * src/java/de/intevation/mxd/ArcGISInitializer.java, + src/java/de/intevation/mxd/Converter.java, + src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java, + src/java/de/intevation/mxd/reader/FeatureClassReader.java, + src/java/de/intevation/mxd/reader/FeatureLayerReader.java, + src/java/de/intevation/mxd/reader/IClassReader.java, + src/java/de/intevation/mxd/reader/ILayerReader.java, + src/java/de/intevation/mxd/reader/IReader.java, + src/java/de/intevation/mxd/reader/IRendererReader.java, + src/java/de/intevation/mxd/reader/ISymbolReader.java, + src/java/de/intevation/mxd/reader/MXDReader.java, + src/java/de/intevation/mxd/reader/MapReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java, + src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java, + src/java/de/intevation/mxd/utils/XMLUtils.java: + Separated converter components into packages. + +2011-04-11 Raimund Renkert + + * src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java: Convert + symbol color to RgbColor and write values to XML document. + +2011-04-11 Raimund Renkert + + * src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java, + src/java/de/intevation/mxd/reader/FeatureClassReader.java, + src/java/de/intevation/mxd/reader/FeatureLayerReader.java, + src/java/de/intevation/mxd/reader/MXDReader.java, + src/java/de/intevation/mxd/reader/MapReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java, + src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java: + Store all attributes in an XML document using the new utility class. + + * src/java/de/intevation/mxd/reader/ILayerReader.java, + src/java/de/intevation/mxd/reader/IRendererReader.java, + src/java/de/intevation/mxd/reader/ISymbolReader.java: Updated interfaces. + + * src/java/de/intevation/mxd/utils/MapToXMLUtils.java: New. Utility class to + store map information in a XML structure. + +2011-04-08 Raimund Renkert + + * src/java/de/intevation/mxd/reader/MXDReader.java: Added class reader. + + * src/java/de/intevation/mxd/reader/FeatureClassReader.java, + src/java/de/intevation/mxd/reader/IClassReader.java: New. + +2011-04-08 Raimund Renkert + + * src/java/de/intevation/mxd/reader/FeatureLayerReader.java: + Write Attributes to the XML document. + + * src/java/de/intevation/mxd/reader/MXDReader.java: Set XML document to + layer reader and print the document. + +2011-04-08 Raimund Renkert + + * build.xml: Added parameter for MXD filename. + + * src/java/de/intevation/mxd/Converter.java: Read MXD filename from + properties. + +2011-04-08 Raimund Renkert + + * src/java/de/intevation/mxd/reader/IReader.java: Added XML document to + store map information. + + * src/java/de/intevation/mxd/reader/MXDReader.java: Write the information to + the XML document. + + * src/java/de/intevation/mxd/reader/MapReader.java: Write map information to + the XML document. + + * src/java/de/intevation/mxd/utils/XMLUtils.java: New. Helper class to + create and manipulate XML documents. + +2011-04-08 Raimund Renkert + + Moved reader components to reader folder. + + * src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java, + src/java/de/intevation/mxd/reader/FeatureLayerReader.java, + src/java/de/intevation/mxd/reader/ILayerReader.java, + src/java/de/intevation/mxd/reader/IReader.java, + src/java/de/intevation/mxd/reader/IRendererReader.java, + src/java/de/intevation/mxd/reader/ISymbolReader.java, + src/java/de/intevation/mxd/reader/MXDReader.java, + src/java/de/intevation/mxd/reader/MapReader.java, + src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java, + src/java/de/intevation/mxd/reader/SimpleRendererReader.java, + src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java: + Moved. + +2011-04-08 Raimund Renkert + + * src/java/de/intevation/mxd/Converter.java: Initial implementation for the + MXD-Converter. + + * src/java/de/intevation/mxd/ArcGISInitializer.java, + src/java/de/intevation/mxd/IReader.java, + src/java/de/intevation/mxd/MXDReader.java, + src/java/de/intevation/mxd/MapReader.java, + src/java/de/intevation/mxd/ILayerReader.java, + src/java/de/intevation/mxd/IRendererReader.java, + src/java/de/intevation/mxd/ISymbolReader.java, + src/java/de/intevation/mxd/FeatureLayerReader.java, + src/java/de/intevation/mxd/SimpleMarkerSymbolReader.java, + src/java/de/intevation/mxd/SimpleRendererReader.java, + src/java/de/intevation/mxd/UniqueValueRendererReader.java, + src/java/de/intevation/mxd/ClassBreakRendererReader.java: + New. Initial implementation for the MXD converter. + + * conf/log4j.properties: New. Contains the log4j configuration. + +2011-04-04 Ingo Weinzierl + + * src/java/de/intevation/mxd/Converter.java: + New. This class represents the entry point of the mxd converter tool. + +2011-03-07 Bjoern Schilberg + + * M mapserver/mapfile/mapfile_header.include: + Pointed to right epsg file. + * A mapserver/epsg/epsg, + R mapserver/epsg/epsg.txt: + Renamed epsg file. + +2011-03-07 Bjoern Schilberg + + * M mxd/Styles/point/SimpleMarkerSymbol/TODO.txt: + Addes hints for ColorRamps in mapserver. + +2011-03-07 Bjoern Schilberg + + * M mapserver/mapfile/mxd.map, + M mapserver/symbols/symbols.sym, + A mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.map, + A mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.sym, + R mxd/Styles/line/CartographicLineSymbol/TODO.txt: + Added missing map and symbology file for testcase multilayer CartographicLineSymbol. + +2011-03-07 Bjoern Schilberg + + * A mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.lyr, + A mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.mxd, + A mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.png, + A mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.txt, + R mxd/Styles/line/CartographicLineSymbol/l_cartoline_0,4pt_c255-255-255_butt-round_template_multilayer.lyr, + R mxd/Styles/line/CartographicLineSymbol/l_cartoline_0,4pt_c255-255-255_butt-round_template_multilayer.mxd, + R mxd/Styles/line/CartographicLineSymbol/l_cartoline_0,4pt_c255-255-255_butt-round_template_multilayer.png, + R mxd/Styles/line/CartographicLineSymbol/l_cartoline_0,4pt_c255-255-255_butt-round_template_multilayer.txt: + Renamed. + +2011-03-07 Bjoern Schilberg + + * M mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.sym, + M mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.sym: + Making CharacterMarkerSymbol work. Fixed CHARACTER notation. + * M ttf-fonts/fonts.txt: + Swapped columns to the right order (alias fontfile). + +2011-03-04 Bjoern Schilberg + + * A .hgignore: + Added initial .hgignore. + +2011-03-04 Bjoern Schilberg + + * M mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.map, + M mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.sym: + + Modified polygon style LineFillSymbol mapfile testcase. + +2011-03-04 Bjoern Schilberg + + * M mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.map, + M mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.sym, + M mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.map, + M mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.sym: + + Modified polygon style SimpleFillSymbol mapfile testcase. + +2011-03-04 Bjoern Schilberg + + * A images/grass.png, + A mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.lyr, + A mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.map, + A mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.mxd, + A mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.png, + A mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.sym, + A mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.txt, + R mxd/Styles/polygon/PictureFillSymbol/pol_single_0,4pt_109-187-67_0-1-1_Grassland.lyr, + R mxd/Styles/polygon/PictureFillSymbol/pol_single_0,4pt_109-187-67_0-1-1_Grassland.map, + R mxd/Styles/polygon/PictureFillSymbol/pol_single_0,4pt_109-187-67_0-1-1_Grassland.mxd, + R mxd/Styles/polygon/PictureFillSymbol/pol_single_0,4pt_109-187-67_0-1-1_Grassland.png, + R mxd/Styles/polygon/PictureFillSymbol/pol_single_0,4pt_109-187-67_0-1-1_Grassland.sym, + R mxd/Styles/polygon/PictureFillSymbol/pol_single_0,4pt_109-187-67_0-1-1_Grassland.txt: + + Modified polygon style PictureFillSymbol mapfile testcase. + +2011-03-04 Bjoern Schilberg + + * A mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.lyr, + A mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.map, + A mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.mxd, + A mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.png, + A mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.sym, + A mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.txt, + R mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1,0.lyr, + R mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1,0.map, + R mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1,0.mxd, + R mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1,0.png, + R mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1,0.sym, + R mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1,0.txt: + + Modified polygon style MarkerFillSymbol mapfile testcase. + +2011-03-04 Bjoern Schilberg + + * A mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.map, + A mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.sym: + + Modified line style MarkerLineSymbol mapfile testcase. + +2011-03-04 Bjoern Schilberg + + * M mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.map, + M mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.sym, + M mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.map, + M mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.sym, + M mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.map, + M mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.sym, + M mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.map, + M mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.sym, + M mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.map, + M mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.sym, + M mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.map: + + Modified line style SimpleLineSymbol mapfile testcases. + +2011-03-04 Bjoern Schilberg + + * M mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.sym, + A images/brick1.png, + A mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.map: + + Modified line style PictureLineSymbol mapfile testcases. + +2011-03-04 Bjoern Schilberg + + * M mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.map, + M mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.sym, + M mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.map, + M mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.sym, + M mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.map, + M mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.sym, + M mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.map, + M mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.sym, + M mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.map, + M mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.sym: + + Modified line style CartographicLineSymbol mapfile testcases. + +2011-03-04 Bjoern Schilberg + + * M mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.map, + M mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.sym: + + Modified point style SimpleMarkerSymbol mapfile testcase. + +2011-03-04 Bjoern Schilberg + + * M mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.map, + M mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.sym, + A images/warning.png: + + Modified point style PictureMarkerSymbol mapfile testcase. + +2011-03-04 Bjoern Schilberg + + * A mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.lyr, + A mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.map, + A mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.mxd, + A mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.png, + A mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.sym, + A mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.txt, + R mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12,0-0,0.lyr, + R mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12,0-0,0.map, + R mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12,0-0,0.mxd, + R mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12,0-0,0.png, + R mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12,0-0,0.sym, + R mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12,0-0,0.txt: + + Modified point style ArrowMarkerSymbol mapfile testcase. + +2011-03-04 Bjoern Schilberg + + * M mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.map, + M mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.sym, + M mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.map, + M mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.sym: + + Modifed point style CharacterMarkerSymbol mapfile testcase. + +2011-03-04 Bjoern Schilberg + + * M mapserver/mapfile/mapfile_header.include: + Adjusted CONFIG "MS_ERRORFILE". and + Commented out CONFIG "PROJ_LIB", because it doesn' work. + + * M mapserver/mapfile/mxd.map: + Added mxd testcase map files. + + * M mapserver/symbols/symbols.sym: + Added mxd testcase sym files. + +2011-03-04 Bjoern Schilberg + + * R mapserver/logs/ms_error.log: + Removed. + +2011-03-04 Bjoern Schilberg + + * M contrib/apache/mxd-testbed.conf: + Adjustment for the mxd-testbed. + * M contrib/sh/wms_mxd.cgi: + chmod 755 + +2011-03-03 Bjoern Schilberg + + * M README.txt: + Concretions + +2011-03-03 Bjoern Schilberg + + * A README.txt: + Added initial README for setting up apache. + * A contrib/apache/mxd-testbed.conf: + Added initial vhost configuration for mxd-testbed. + * A contrib/sh/wms_mxd.cgi: + Added initial mapserver wrapper script. diff -r 1618d68cb723 -r 3ac0968e26f3 INSTALL.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/INSTALL.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,74 @@ +------------ +Requirements +------------ + +The current version of the converter only runs on Windows. This is because +the ArcObjects JDK API is not running properly on Linux though. + +To run the converter you need at least the following componentes: + + * Sun Java6 SDK to build, JRE to run + * ArcGIS Desktop10.x or ArcEngine10.x with a valid licence enabled + * UMN MapServer with Java MapScript-bindings (recent development-version) + * Apache Webserver for displaying the resulting Mapfiles + * Optional: MapServer compiled with ArcSDE-plugin + * Optional: GDAL/OGR compiled with ArcSDE-support + * Optional: GDAL/OGR compiled with FileGeodatabase-support + + + +------------ +Installation +------------ + +Compile the converter-sources +----------------------------- + +To compile the sources you need to have a properly configured +ant-environmet available. ArcGIS SDK provides an ant-installation which +suffices:: + + ant jar + +Install Apache Webserver +------------------------ + +Install Apache webserver by exedcuting the .msi-file and follow the +install-dialogs:: + + httpd-2.2.19-win32-x86-openssl-0.9.8r.msi + +Make sure that you install apache as a service so it will be available +directly after system bootup. + + +Install UMN MapServer +--------------------- + +The current documentation uses the Windows binary-builds from http://www.gisinternals.com/sdk/ + +1. Unzip the ZIP-file at c:/ms_6.1-dev + +#. Configure Apache Webserver to find the cgi-bin-folder:: + + ScriptAlias /cgi-bin/ "C:/ms_6.1-dev/bin/" + + + Options None + Order allow,deny + Allow from all + + +#. Copy mapserv.exe from c:/ms_6.1-dev/bin/apps/ms to c:/ms_6.1-dev/bin/ + +Create run-environment +---------------------- + +writeme + + +----- +Usage +----- + +writeme diff -r 1618d68cb723 -r 3ac0968e26f3 build.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build.xml Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,95 @@ + + +]> + + + + + &properties; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 1618d68cb723 -r 3ac0968e26f3 conf/log4j.properties --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/log4j.properties Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,16 @@ +#### Log just errors and warnings to a file. +log4j.rootLogger=DEBUG, MXD, Console + +log4j.appender.MXD=org.apache.log4j.RollingFileAppender +log4j.appender.MXD.File=./logs/console-client.log +log4j.appender.MXD.MaxFileSize=5000KB +log4j.appender.MXD.MaxBackupIndex=1 +log4j.appender.MXD.layout=org.apache.log4j.PatternLayout +log4j.appender.MXD.layout.ConversionPattern=%d [%t] %-5p %c - %m%n + +#log4j.rootLogger=WARN, Console +log4j.appender.Console=org.apache.log4j.ConsoleAppender +log4j.appender.Console.Threshold=INFO +log4j.appender.Console.layout=org.apache.log4j.PatternLayout +log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n + diff -r 1618d68cb723 -r 3ac0968e26f3 contrib/apache/mxd-testbed.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/apache/mxd-testbed.conf Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,105 @@ +# +# VirtualHost template +# Note: to use the template, rename it to /etc/apache2/vhost.d/yourvhost.conf. +# Files must have the .conf suffix to be loaded. +# +# See /usr/share/doc/packages/apache2/README.QUICKSTART for further hints +# about virtual hosts. +# +# NameVirtualHost statements can be added to /etc/apache2/listen.conf. +# +# Almost any Apache directive may go into a VirtualHost container. +# The first VirtualHost section is used for requests without a known +# server name. +# + + ServerAdmin webmaster@dummy-host.example.com + ServerName dummy-host.example.com + + # DocumentRoot: The directory out of which you will serve your + # documents. By default, all requests are taken from this directory, but + # symbolic links and aliases may be used to point to other locations. + DocumentRoot /home/intevation/mxd-testbed/web + + # if not specified, the global error log is used + ErrorLog /var/log/apache2/mxd-testbed_error.log + CustomLog /var/log/apache2/mxd-testbed_access.log combined + + # don't loose time with IP address lookups + HostnameLookups Off + + # needed for named virtual hosts + UseCanonicalName Off + + # configures the footer on server-generated documents + ServerSignature On + + + # Optionally, include *.conf files from /etc/apache2/conf.d/ + # + # For example, to allow execution of PHP scripts: + # + # Include /etc/apache2/conf.d/mod_php4.conf + # + # or, to include all configuration snippets added by packages: + # Include /etc/apache2/conf.d/*.conf + + + # ScriptAlias: This controls which directories contain server scripts. + # ScriptAliases are essentially the same as Aliases, except that + # documents in the realname directory are treated as applications and + # run by the server when requested rather than as documents sent to the client. + # The same rules about trailing "/" apply to ScriptAlias directives as to + # Alias. + # + ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/" + + # "/srv/www/cgi-bin" should be changed to whatever your ScriptAliased + # CGI directory exists, if you have one, and where ScriptAlias points to. + # + + AllowOverride None + Options +ExecCGI -Includes +FollowSymLinks + Order allow,deny + Allow from all + + + + + + # + # This should be changed to whatever you set DocumentRoot to. + # + + + # + # Possible values for the Options directive are "None", "All", + # or any combination of: + # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews + # + # Note that "MultiViews" must be named *explicitly* --- "Options All" + # doesn't give it to you. + # + # The Options directive is both complicated and important. Please see + # http://httpd.apache.org/docs-2.2/mod/core.html#options + # for more information. + # + Options Indexes FollowSymLinks + + # + # AllowOverride controls what directives may be placed in .htaccess files. + # It can be "All", "None", or any combination of the keywords: + # Options FileInfo AuthConfig Limit + # + AllowOverride None + + # + # Controls who can get stuff from this server. + # + Order allow,deny + Allow from all + + + + + diff -r 1618d68cb723 -r 3ac0968e26f3 contrib/python/FixWorkspacePaths.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/python/FixWorkspacePaths.py Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,34 @@ +import arcpy, os + +inputMXD = arcpy.GetParameterAsText(0) + +newpath = r'C:\mxd-konverter\testdata-frida' + +rootdir = inputMXD + +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() == ".mxd": + print "Bearbeitet Dokument %s" % f + mxd = arcpy.mapping.MapDocument(f) + #Report broken sources + if len(arcpy.mapping.ListBrokenDataSources(mxd)) > 0: + for brkLyr in arcpy.mapping.ListBrokenDataSources(mxd): + if brkLyr.supports("dataSource"): + oldpath = brkLyr.dataSource + oldworkspace = brkLyr.workspacePath + print "Old dataSource-Path %s, old workspacePath %s " % (oldpath, oldworkspace) + # Replace + brkLyr.findAndReplaceWorkspacePath(oldworkspace, newpath) + print "Corrected path: %s" % brkLyr.workspacePath + print "Corrected dataSource: %s" %brkLyr.dataSource + mxd.save() + print "Wrote file %s" % f + print arcpy.GetMessages() + else: + print "keine kaputten Layer gefunden" + +del mxd diff -r 1618d68cb723 -r 3ac0968e26f3 contrib/python/foobar.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/python/foobar.py Thu Jun 30 12:40:27 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)) diff -r 1618d68cb723 -r 3ac0968e26f3 contrib/sh/test_mxd.cgi --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/sh/test_mxd.cgi Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,5 @@ +#!/bin/sh +# SLES compatible +MS_MAPFILE=/tmp/test.map +export MS_MAPFILE +/srv/www/cgi-bin/mapserv diff -r 1618d68cb723 -r 3ac0968e26f3 contrib/sh/wms_mxd.cgi --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/sh/wms_mxd.cgi Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,5 @@ +#!/bin/sh +# SLES compatible +MS_MAPFILE=/home/intevation/mxd-testbed/mapserver/mapfile/mxd.map +export MS_MAPFILE +/srv/www/cgi-bin/mapserv diff -r 1618d68cb723 -r 3ac0968e26f3 converter.properties.sample --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/converter.properties.sample Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,4 @@ +# Java properties file for the MXD Converter Tool. +mxd = \\full\\path\\to\\mxd-file +map = \\full\\path\\to\\map-file +map-template = \\full\\path\\to\\mapfile-template diff -r 1618d68cb723 -r 3ac0968e26f3 doku/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doku/Makefile Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/MXD2map.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/MXD2map.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/MXD2map" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/MXD2map" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff -r 1618d68cb723 -r 3ac0968e26f3 doku/funktionsweise/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doku/funktionsweise/Makefile Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,39 @@ +# Makefile to get images from vector drawings. +# Sketch (.sk) +# SVG (.sk) + +SKS=$(wildcard *.sk) +SVG=$(wildcard *.svg) +PNG=$(wildcard *.png) + +OUTPUT_PNG_SK=$(SKS:sk=png) +OUTPUT_PNG_SVG=$(SVG:svg=png) +OUTPUT_PS_PNG=$(PNG:png=ps) +OUTPUT_PS_SVG=$(SVG:svg=eps) + +all: png + +png: $(OUTPUT_PNG_SK) $(OUTPUT_PNG_SVG) + +ps: $(OUTPUT_PS_SVG) $(OUTPUT_PS_PNG) + +%.png: %.sk + sk2ppm --bbox $*.sk | pnmtopng - > $*.png + +%.png: %.svg + inkscape -d 150 -D -e $*.png $*.svg + +%.ps: %.png + convert $*.png $*.ps + +%.eps: %.svg + inkscape -d 150 -D -E $*.eps $*.svg + +clean: + rm -f $(OUTPUT_PNG_SK) 2>/dev/null; true + rm -f $(OUTPUT_PNG_SVG) 2>/dev/null; true + rm -f $(OUTPUT_PS_PNG) 2>/dev/null; true + rm -f $(OUTPUT_PS_SVG) 2>/dev/null; true + + +.PHONY: png ps clean diff -r 1618d68cb723 -r 3ac0968e26f3 doku/funktionsweise/funktionsweise-MXD-konverter.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doku/funktionsweise/funktionsweise-MXD-konverter.svg Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,514 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mai 2011 + + + + Funktionsweise MXD2map + + + MXD-Datei + + + + MapServer-Datei + + + + + MXD2map + + + + + Java MapScript + + + + + ArcGIS Desktop 10 + + + + + + + Map-Template + + + + + + + + + + + Konfigurierbar + + diff -r 1618d68cb723 -r 3ac0968e26f3 doku/source/INSTALL.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doku/source/INSTALL.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,1 @@ +../../INSTALL.txt \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 doku/source/conf.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doku/source/conf.py Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,235 @@ +# -*- coding: utf-8 -*- +# +# MXD2map documentation build configuration file, created by +# sphinx-quickstart on Mon Jun 20 09:48:05 2011. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.viewcode'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.txt' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'MXD2map' +copyright = u'2011, foo bar' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.0.1' +# The full version, including alpha/beta/rc tags. +release = '0.0.1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +language = 'de' + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'MXD2mapdoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'MXD2map.tex', u'MXD2map Documentation', + u'foo bar', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + +latex_elements = { +'preamble': r'''\newcommand{\pyHeaderFamily}{\sffamily\bfseries} +\fancypagestyle{normal}{ \fancyhf{} + \fancyfoot[LE,RO]{{\pyHeaderFamily \thepage}} + \fancyfoot[LO]{{\pyHeaderFamily \nouppercase{\rightmark}}} + \fancyfoot[RE]{{\pyHeaderFamily \nouppercase{\leftmark}}} + \fancyhead[LE,RO]{{\pyHeaderFamily \title, + \releasename\space\version}} + \renewcommand{\headrulewidth}{0.4pt} + \renewcommand{\footrulewidth}{0.4pt} + % changes + %\fancyhead[LO,RE]{{\includegraphics[height=0.5cm]{InteProxy-logo.png}}} + +} +''', +'classoptions': ',oneside', +'babel': '\\usepackage[ngerman,german]{babel}' +} + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'mxd2map', u'MXD2map Documentation', + [u'foo bar'], 1) +] diff -r 1618d68cb723 -r 3ac0968e26f3 doku/source/index.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doku/source/index.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,23 @@ +.. MXD2map documentation master file, created by + sphinx-quickstart on Mon Jun 20 09:48:05 2011. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to MXD2map's documentation! +=================================== + +Contents: + +.. toctree:: + :maxdepth: 2 + + INSTALL.txt + restrictions.txt + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff -r 1618d68cb723 -r 3ac0968e26f3 doku/source/restrictions.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doku/source/restrictions.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +------------ +Restrictions +------------ + +Currently there are some restrictions in the usage of the converter: + +Supported datasources: + + * ArcSDE-passwords cannot be read since they are encrypted. The converter + exports the string "define me" which needs to be replaced later on in the + resulting mapfile + + * diff -r 1618d68cb723 -r 3ac0968e26f3 images/brick1.png Binary file images/brick1.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 images/grass.png Binary file images/grass.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 images/warning.png Binary file images/warning.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mapserver/epsg/epsg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mapserver/epsg/epsg Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,5 @@ +# WGS 84 / LAT-LON +<4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs <> + +# DHDN / Gauss-Kruger zone 3 +<31467> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs <> diff -r 1618d68cb723 -r 3ac0968e26f3 mapserver/fonts/fonts.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mapserver/fonts/fonts.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,3 @@ +## SLES 11 +DejaVuSans /usr/share/fonts/truetype/DejaVuSans.ttf + diff -r 1618d68cb723 -r 3ac0968e26f3 mapserver/mapfile/mapfile_header.include --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mapserver/mapfile/mapfile_header.include Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,60 @@ +STATUS ON +SIZE 400 400 +EXTENT 3427000 5787000 3444200 5801000 +UNITS meters +IMAGECOLOR -1 -1 -1 #transparent +FONTSET "../../ttf-fonts/fonts.txt" +SYMBOLSET "../symbols/symbols.sym" +SHAPEPATH "../../testdata-frida/" +IMAGETYPE png +CONFIG "ON_MISSING_DATA" "LOG" # see http://mapserver.org/mapfile/map.html for details +CONFIG "MS_ERRORFILE" "../../logs/ms_error.log" +DEBUG 5 + +MAXSIZE 2500 # 2500x2500 pixel maximum Site + +# Own PROJECTION-file +CONFIG "PROJ_LIB" "../../mapserver/epsg" + +PROJECTION + "init=epsg:31467" +END + +#8bit png, supports transparency. +OUTPUTFORMAT + NAME aggpng + DRIVER AGG/PNG + MIMETYPE "image/png" + + ## transparency only with RGBA Image Mode + ## mapserver had to be compiled -with-experimental-png + + IMAGEMODE RGBA + EXTENSION "png" + + ## The next options works with transparency, when requesting another + ## layer within the same request. When requesting the layer alone, + ## everything seems black. TODO: Verify if this is a bug or a features. + ## Anyway, it reduces the PNG-filesize by 70% though! + FORMATOPTION "QUANTIZE_FORCE=ON" + FORMATOPTION "QUANTIZE_COLORS=256" + FORMATOPTION "QUANTIZE_NEW=ON" + + + ## The next options will work with transparency but are incompatible + ## with the previous quantization options. + #FORMATOPTION "PALETTE_FORCE=ON" + #FORMATOPTION "PALETTE=/home/geo4/mapserver/palette.txt" #to be defined + + TRANSPARENT ON +END + +#24bit png, supports all colors but does not support transparency. +OUTPUTFORMAT + NAME aggpng24 + DRIVER AGG/PNG + MIMETYPE "image/png; mode=24bit" + IMAGEMODE RGBA + EXTENSION "png" +END + diff -r 1618d68cb723 -r 3ac0968e26f3 mapserver/mapfile/mxd.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mapserver/mapfile/mxd.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,41 @@ +#MapServer mxd map file +MAP + + NAME "mxd" + INCLUDE "mapfile_header.include" + +WEB + IMAGEPATH "/tmp/" + IMAGEURL "/tmp/" + + METADATA + 'ows_title' 'Intevation MXD WMS DemoService' + 'ows_srs' 'EPSG:4326 EPSG:31467' + 'ows_extent' '3427000 5787000 3444200 5801000' + 'ows_addresstype' 'postal' + 'ows_address' 'Neuer Graben 17' + 'ows_postcode' '49074' + 'ows_city' 'Osnabrueck' + 'ows_stateorprovince' 'DE-NDS' + 'ows_country' 'DE' + 'ows_contactposition' 'Geospatial' + 'ows_contactperson' 'Bjoern Schilberg' + 'ows_contactorganization' 'Geospatial' + 'ows_contactvoicetelephone' '+49 541 33 50 83 0' + 'ows_contactfacsimiletelephone' '+49 541 33 50 83 99' + 'ows_contactelectronicmailaddress' 'geospatial@intevation.de' + 'ows_abstract' 'MXD - Demo-Dienst für die Ãœberprüfung der Konvertierung der MXD Dateien nach MAP Dateien.' + 'ows_fees' 'Die Nutzung dieses Dienstes ist kostenfrei.' + 'ows_accessconstraints' 'Sämtliche Rechte an diesem Produkt liegen bei der Intevation GmbH.' + 'ows_keywordlist' 'MXD, STYLES, SYMBOLOGY' + 'ows_sld_enabled' 'false' + 'ows_http_max_age' '86400' # should 24h in seconds + 'ows_enable_request' '*' + 'wms_feature_info_mime_type' 'text/html' + 'wms_getmap_formatlist' 'image/png,image/png; mode=24bit' + 'wms_encoding' 'UTF-8' + 'wms_exceptions_format' 'XML' + END +END + +END diff -r 1618d68cb723 -r 3ac0968e26f3 mapserver/rundir/Readme.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mapserver/rundir/Readme.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +This is a placeholder. + +This folder is intended to copy the generated Mapfiles to and run them +through mapserver with the following command: + +http://localhost/cgi-bin/mapserv.exe?map=z:/mxd-testbed_sh/rundir/p_categorie_4pt_11classes.map&template=openlayers&mode=browse&layers=poi diff -r 1618d68cb723 -r 3ac0968e26f3 mapserver/symbols/symbols.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mapserver/symbols/symbols.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,8 @@ +SYMBOLSET + # basic symbol for hatching in all variantes which + # will be combined inside the STYLE-block + SYMBOL + NAME "hatch" + TYPE hatch + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/README_mxd.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/README_mxd.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,19 @@ +=========== +MXD TESTBED +=========== + +For more information take a look at: +https://bsh-intern.intevation.de/MXD/Arbeitspakete/AP2/1 + +URLs +==== +http://bhutan.atlas.intevation.de/cgi-bin/wms_mxd.cgi +http://bhutan.atlas.intevation.de/cgi-bin/wms_mxd.cgi?Request=GetCapabilities&Service=WMS&Version=1.1.1 + + +Setting up mapserver mxd testbed under SLES 11 +============================================== +zypper in mapserver +ln -s /home/intevation/mxd-testbed/contrib/sh/wms_mxd.cgi /srv/www/cgi-bin +ln -s /home/intevation/mxd-testbed/contrib/apache/mxd-testbed.conf /etc/apache2/vhosts.d/ +/etc/init.d/apache2 reload diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Shapefile-SimpleFeature/Geometry/LineString/gewaesserlinien-joined.mxd.old Binary file mxd/Shapefile-SimpleFeature/Geometry/LineString/gewaesserlinien-joined.mxd.old has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Shapefile-SimpleFeature/Geometry/LineString/strassen-joined.mxd.old Binary file mxd/Shapefile-SimpleFeature/Geometry/LineString/strassen-joined.mxd.old has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Shapefile-SimpleFeature/Geometry/Point/poi-joined.mxd.old Binary file mxd/Shapefile-SimpleFeature/Geometry/Point/poi-joined.mxd.old has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Shapefile-SimpleFeature/Geometry/Polygon/gewaesserflaechen.mxd.old Binary file mxd/Shapefile-SimpleFeature/Geometry/Polygon/gewaesserflaechen.mxd.old has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Shapefile-SimpleFeature/Geometry/Polygon/gruenflaechen-joined.mxd.old Binary file mxd/Shapefile-SimpleFeature/Geometry/Polygon/gruenflaechen-joined.mxd.old has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/label/pol_label_allthesame.mxd Binary file mxd/Styles/label/pol_label_allthesame.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/label/pol_label_allthesame.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/label/pol_label_allthesame.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,5 @@ +Label all entries the same +Labelfield: gfName +Font: Arial +Size: 8pt +FontColor: black diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/label/pol_label_scaledependent.mxd Binary file mxd/Styles/label/pol_label_scaledependent.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/label/pol_label_scaledependent.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/label/pol_label_scaledependent.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +Label all features the same way +Font: Arial +size: 12 +FontColor: 85 255 0 +LabelField: gfName +Minscale: all below 1:24.000 diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.lyr Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,30 @@ +LAYER + NAME "l_cartoline_04pt_c255-255-255_butt-round_template_multilayer" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_cartoline_04pt_c255-255-255_butt-round_template_multilayer" + END + CLASS + STYLE + SYMBOL "l_cartoline_04pt_c255-255-255_butt-round_template_multilayer" + LINECAP butt #[butt|round|square|triangle] + LINEJOIN round #[round|miter|bevel] + #LINEJOINMAXSIZE 3 #only relevant for LINEJOIN type MITER + COLOR 0 0 0 + WIDTH 1 + OFFSET 0 -0.8 + END + STYLE + SYMBOL "l_cartoline_04pt_c255-255-255_butt-round_template_multilayer" + LINECAP butt #[butt|round|square|triangle] + LINEJOIN round #[round|miter|bevel] + #LINEJOINMAXSIZE 3 #only relevant for LINEJOIN type MITER + COLOR 0 0 0 + WIDTH 1 + OFFSET 0 0.8 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.mxd Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.png Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,7 @@ +SYMBOL + NAME "l_cartoline_04pt_c255-255-255_butt-round_template_multilayer" + ## AGG library error. Cartoline drawing is deprecated with AGG + #TYPE CARTOLINE + TYPE SIMPLE + PATTERN 4 1 END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_04pt_c255-255-255_butt-round_template_multilayer.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,35 @@ +# Hinweis: Unterschied zw. erster und zweiter Layer: LineProperties.Offset +LineProperties.Offset: -0,8000 +LineProperties.LineDecorations: None + +# erster Layer + +Type: Cartographic Line Symbol +Units: Points + +CartographicLine.Color: 0 0 0 +CartographicLine.Width: 0,4000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Round + +Template.Interval: 1,00 +Template.RepeatingMark/GapLinePattern: 4-1 + +LineProperties.Offset: -0,8000 +LineProperties.LineDecorations: None + +# zweiter Layer + +Type: Cartographic Line Symbol +Units: Points + +CartographicLine.Color: 0 0 0 +CartographicLine.Width: 0,4000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Round + +Template.Interval: 1,00 +Template.RepeatingMark/GapLinePattern: 4-1 + +LineProperties.Offset: 0,8000 +LineProperties.LineDecorations: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.lyr Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,20 @@ +LAYER + NAME "l_cartoline_1pt_c255-255-255_butt-bever" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_cartoline_1pt_c255-255-255_butt-bever" + END + CLASS + STYLE + SYMBOL "l_cartoline_1pt_c255-255-255_butt-bever" + LINECAP butt #[butt|round|square|triangle] + LINEJOIN bevel #[round|miter|bevel] + #LINEJOINMAXSIZE 3 #only relevant for LINEJOIN type MITER + COLOR 0 0 0 + WIDTH 1 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.mxd Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.png Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +SYMBOL + NAME "l_cartoline_1pt_c255-255-255_butt-bever" + ## AGG library error. Cartoline drawing is deprecated with AGG + #TYPE CARTOLINE + TYPE SIMPLE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-bever.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +Type: Cartographic Line Symbol +Units: Points + +CartographicLine.Color: 0 0 0 +CartographicLine.Width: 1,0000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Bevel + +Template.Interval: 1,00 +Template.RepeatingMark/GapLinePattern: + +LineProperties.Offset: 0,0000 +LineProperties.LineDecorations: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.lyr Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,20 @@ +LAYER + NAME "l_cartoline_1pt_c255-255-255_butt-miter" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_cartoline_1pt_c255-255-255_butt-miter" + END + CLASS + STYLE + SYMBOL "l_cartoline_1pt_c255-255-255_butt-miter" + LINECAP butt #[butt|round|square|triangle] + LINEJOIN miter #[round|miter|bevel] + #LINEJOINMAXSIZE 3 #only relevant for LINEJOIN type MITER + COLOR 0 0 0 + WIDTH 1 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.mxd Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.png Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +SYMBOL + NAME "l_cartoline_1pt_c255-255-255_butt-miter" + ## AGG library error. Cartoline drawing is deprecated with AGG + #TYPE CARTOLINE + TYPE SIMPLE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-miter.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +Type: Cartographic Line Symbol +Units: Points + +CartographicLine.Color: 0 0 0 +CartographicLine.Width: 1,0000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Miter + +Template.Interval: 1,00 +Template.RepeatingMark/GapLinePattern: + +LineProperties.Offset: 0,0000 +LineProperties.LineDecorations: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.lyr Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,20 @@ +LAYER + NAME "l_cartoline_1pt_c255-255-255_butt-round" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_cartoline_1pt_c255-255-255_butt-round" + END + CLASS + STYLE + SYMBOL "l_cartoline_1pt_c255-255-255_butt-round" + LINECAP butt #[butt|round|square|triangle] + LINEJOIN round #[round|miter|bevel] + #LINEJOINMAXSIZE 3 #only relevant for LINEJOIN type MITER + COLOR 0 0 0 + WIDTH 1 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.mxd Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.png Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +SYMBOL + NAME "l_cartoline_1pt_c255-255-255_butt-round" + ## AGG library error. Cartoline drawing is deprecated with AGG + #TYPE CARTOLINE + TYPE SIMPLE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_butt-round.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +Type: Cartographic Line Symbol +Units: Points + +CartographicLine.Color: 0 0 0 +CartographicLine.Width: 1,0000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Round + +Template.Interval: 1,00 +Template.RepeatingMark/GapLinePattern: + +LineProperties.Offset: 0,0000 +LineProperties.LineDecorations: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.lyr Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,20 @@ +LAYER + NAME "l_cartoline_1pt_c255-255-255_round-butted" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_cartoline_1pt_c255-255-255_round-butted" + END + CLASS + STYLE + SYMBOL "l_cartoline_1pt_c255-255-255_round-butted" + LINECAP butt #[butt|round|square|triangle] + LINEJOIN round #[round|miter|bevel] + #LINEJOINMAXSIZE 3 #only relevant for LINEJOIN type MITER + COLOR 0 0 0 + WIDTH 1 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.mxd Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.png Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +SYMBOL + NAME "l_cartoline_1pt_c255-255-255_round-butted" + ## AGG library error. Cartoline drawing is deprecated with AGG + #TYPE CARTOLINE + TYPE SIMPLE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_1pt_c255-255-255_round-butted.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +Type: Cartographic Line Symbol +Units: Points + +CartographicLine.Color: 0 0 0 +CartographicLine.Width: 1,0000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Round + +Template.Interval: 1,00 +Template.RepeatingMark/GapLinePattern: + +LineProperties.Offset: 0,0000 +LineProperties.LineDecorations: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.lyr Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,21 @@ +LAYER + NAME "l_cartoline_6pt_c255-255-255_butt-round_template" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_cartoline_6pt_c255-255-255_butt-round_template" + END + CLASS + STYLE + SYMBOL "l_cartoline_6pt_c255-255-255_butt-round_template" + LINECAP butt #[butt|round|square|triangle] + LINEJOIN round #[round|miter|bevel] + #LINEJOINMAXSIZE 3 #only relevant for LINEJOIN type MITER + PATTERN 1 1 END + COLOR 0 0 0 + WIDTH 6 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.mxd Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.png Binary file mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +SYMBOL + NAME "l_cartoline_6pt_c255-255-255_butt-round_template" + ## AGG library error. Cartoline drawing is deprecated with AGG + #TYPE CARTOLINE + TYPE SIMPLE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/CartographicLineSymbol/l_cartoline_6pt_c255-255-255_butt-round_template.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +Type: Cartographic Line Symbol +Units: Points + +CartographicLine.Color: 0 0 0 +CartographicLine.Width: 6,0000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Round + +Template.Interval: 1,00 +Template.RepeatingMark/GapLinePattern: 1-1 + +LineProperties.Offset: 0,0000 +LineProperties.LineDecorations: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/HashLineSymbol/l_hashline_90,0_Express-Way_255-251-134_1,0.lyr Binary file mxd/Styles/line/HashLineSymbol/l_hashline_90,0_Express-Way_255-251-134_1,0.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/HashLineSymbol/l_hashline_90,0_Express-Way_255-251-134_1,0.mxd Binary file mxd/Styles/line/HashLineSymbol/l_hashline_90,0_Express-Way_255-251-134_1,0.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/HashLineSymbol/l_hashline_90,0_Express-Way_255-251-134_1,0.png Binary file mxd/Styles/line/HashLineSymbol/l_hashline_90,0_Express-Way_255-251-134_1,0.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/HashLineSymbol/l_hashline_90,0_Express-Way_255-251-134_1,0.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/HashLineSymbol/l_hashline_90,0_Express-Way_255-251-134_1,0.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,8 @@ +SYMBOL + NAME "CartographicLine" + TYPE cartoline + LINECAP round #[butt|round|square|triangle] + LINEJOIN miter #[round|miter|bevel] + LINEJOINMAXSIZE 3 +END + diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/HashLineSymbol/l_hashline_90,0_Express-Way_255-251-134_1,0.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/HashLineSymbol/l_hashline_90,0_Express-Way_255-251-134_1,0.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,68 @@ +l_hashline_90,0_Express-Way_255-251-134_1,0 + +Type: Hash Line Symbol +Units: Points + +HashLine.Angle: 90,00 +HashLine.HashSymbol: Express Way + +CartographicLine.Color: 255 251 134 +CartographicLine.With: 1,0000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Miter + +Template.RepeatingMark/GapLinePattern: 1-1 +Template.Interval: 1,00 + +LineProperties.Offset: 0,0000 +LineProperties.LineDecorations: None + +##HashSymbol + +#Layer 1 + +Type: Cartographic Line Symbol +Units: Points + +CartographicLine.Color: 0 0 0 +CartographicLine.Width: 0,8000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Rount + +Template.RepeatingMark/GapLinePattern: +Template.Interval: 1,00 + +LineProperties.Offset: 0,0000 +LineProperties.LineDecoration: None + +#Layer 2 + +Type: Cartographic Line Symbol +Units: Points + +CartographicLine.Color: 255 251 134 +CartographicLine.Width: 2,6000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Rount + +Template.RepeatingMark/GapLinePattern: +Template.Interval: 1,00 + +LineProperties.Offset: 0,0000 +LineProperties.LineDecoration: None + +#Layer 3 + +Type: Cartographic Line Symbol +Units: Points + +CartographicLine.Color: 0 0 0 +CartographicLine.Width: 3,4000 +CartographicLine.LineCaps: Butt +CartographicLine.LineJoins: Rount + +Template.RepeatingMark/GapLinePattern: +Template.Interval: 1,00 + +LineProperties.Offset: 0,0000 +LineProperties.LineDecoration: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.lyr Binary file mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,15 @@ +LAYER + NAME "l_markerline_18pt_0-0-0_raute" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_markerline_18pt_0-0-0_raute" + END + CLASS + SYMBOL "l_markerline_18pt_0-0-0_raute" + COLOR 0 0 0 + SIZE 18 + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.mxd Binary file mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.png Binary file mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,12 @@ +SYMBOL + NAME "l_markerline_18pt_0-0-0_raute" + TYPE VECTOR + POINTS + 0 0.5 + 0.5 0 + 1 0.5 + 0.5 1 + 0 0.5 + END + FILLED FALSE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/MarkerLineSymbol/l_markerline_18pt_0-0-0_raute.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,12 @@ +shapefile +Markerline +Marker: + Font: ESRI Default Marker + Subset: Latin + Unicode: 87 + Size: 18pt + Angle: 0 + Color: 0-0-0 + Mask: None + + diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.lyr Binary file mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,17 @@ +LAYER + NAME "l_pictureline_brick1_1_1_1-0-0-0" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_pictureline_brick1_1_1_1-0-0-0" + END + CLASS + STYLE + SYMBOL "l_pictureline_brick1_1_1_1-0-0-0" + COLOR 0 0 0 + SIZE 1 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.mxd Binary file mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.png Binary file mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +SYMBOL + NAME "l_pictureline_brick1_1_1_1-0-0-0" + TYPE PIXMAP + IMAGE "/home/intevation/mxd-testbed/images/brick1.png" + TRANSPARENT 0 #PictureMarker.TransparentColor: 255 255 255 +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/PictureLineSymbol/l_pictureline_brick1_1_1_1-0-0-0.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,12 @@ +l_pictureline_brick1_1_1_1-0-0-0 + +Type: Picture Line Symbol +Units: Points +PictureLine.Picture: C:\Program Files\ArcGIS\Desktop10.0\Styles\Pictures\brick1.bmp +PictureLine.With: 1,0000 +PictureLine.Scale X: 1,0000 +PictureLine.Scale Y: 1,0000 +PictureLine.ForegroundColor: 0 0 0 +PictureLine.BackgroundColor: No Color +PictureLine.Transparentcolor: +PictureLine.Swap Foreground Color on 1 bit Images: \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/README.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/README.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,10 @@ +Possible types +============== + +* 3D Simple Line Symbol (deferred) +* 3D Texture Line Symbol (deferred) +* Cartographic Line Symbol +* Hash Line Symbol +* Marker Line Symbol +* Picture Line Symbol +* Simple Line Symbol diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.lyr Binary file mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,17 @@ +LAYER + NAME "l_dash-dott-dott_1pt_c255-255-255" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_dash-dott-dott_1pt_c255-255-255" + END + CLASS + STYLE + SYMBOL "l_dash-dott-dott_1pt_c255-255-255" + COLOR 0 0 0 + SIZE 1 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.mxd Binary file mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.png Binary file mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +SYMBOL + NAME "l_dash-dott-dott_1pt_c255-255-255" + TYPE SIMPLE + + #dash-dot-dot line where the dashes are seven and spaces are five pixels long + #first number: dash length (7 pixel) + #second number: space length (5 pixel) + #third number: one pixel dot + #fourth number: space length (5 pixel) + #five number: one pixel dot + #six number: space length (5 pixel) + PATTERN 7 5 1 5 1 5 END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dash-dott-dott_1pt_c255-255-255.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +Type: Simple Line Symbol +Units: Points + +SimpleLine.Color: 0 0 0 +SimpleLine.Style: Dash-Dot-Dot +SimpleLine.Width: 1,0000 \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.lyr Binary file mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,17 @@ +LAYER + NAME "l_dash-dotted_1pt_c255-255-255" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_dash-dotted_1pt_c255-255-255" + END + CLASS + STYLE + SYMBOL "l_dash-dotted_1pt_c255-255-255" + COLOR 0 0 0 + SIZE 1 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.mxd Binary file mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.png Binary file mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,11 @@ +SYMBOL + NAME "l_dash-dotted_1pt_c255-255-255" + TYPE SIMPLE + + #dash-dot line where the dashes are seven and spaces are five pixels long + #first number: dash length (7 pixel) + #second number: space length (5 pixel) + #third number: one pixel dot + #fourth number: space length (5 pixel) + PATTERN 7 5 1 5 END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dash-dotted_1pt_c255-255-255.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +Type: Simple Line Symbol +Units: Points + +SimpleLine.Color: 0 0 0 +SimpleLine.Style: Dash-Dot +SimpleLine.Width: 1,0000 \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.lyr Binary file mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,17 @@ +LAYER + NAME "l_dashed_1pt_c255-255-255" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_dashed_1pt_c255-255-255" + END + CLASS + STYLE + SYMBOL "l_dashed_1pt_c255-255-255" + COLOR 0 0 0 + SIZE 1 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.mxd Binary file mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.png Binary file mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,9 @@ +SYMBOL + NAME "l_dashed_1pt_c255-255-255" + TYPE SIMPLE + + #dashed line where the dashes and spaces are both five pixels long + #first number: dash length + #second number: space length + PATTERN 5 5 END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dashed_1pt_c255-255-255.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +Type: Simple Line Symbol +Units: Points + +SimpleLine.Color: 0 0 0 +SimpleLine.Style: Dashed +SimpleLine.Width: 1,0000 diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.lyr Binary file mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,17 @@ +LAYER + NAME "l_dotted_1pt_c255-255-255" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_dotted_1pt_c255-255-255" + END + CLASS + STYLE + SYMBOL "l_dotted_1pt_c255-255-255" + COLOR 0 0 0 + SIZE 1 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.mxd Binary file mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.png Binary file mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,9 @@ +SYMBOL + NAME "l_dotted_1pt_c255-255-255" + TYPE SIMPLE + + #dotted line where the dashes and spaces are both one pixels long + #first number: dash length + #second number: space length + PATTERN 1 1 END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_dotted_1pt_c255-255-255.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +Type: Simple Line Symbol +Units: Points + +SimpleLine.Color: 0 0 0 +SimpleLine.Style: Dotted +SimpleLine.Width: 1,0000 \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.lyr Binary file mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,17 @@ +LAYER + NAME "l_solid_1pt_c255-255-255" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_solid_1pt_c255-255-255" + END + CLASS + STYLE + SYMBOL "l_solid_1pt_c255-255-255" + COLOR 0 0 0 + WIDTH 1 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.mxd Binary file mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.png Binary file mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,5 @@ +SYMBOL + NAME "l_solid_1pt_c255-255-255" + TYPE SIMPLE + FILLED TRUE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_solid_1pt_c255-255-255.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +Type: Simple Line Symbol +Units: Points + +SimpleLine.Color: 0 0 0 +SimpleLine.Style: Solid +SimpleLine.Width: 1,0000 \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.lyr Binary file mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,15 @@ +LAYER + NAME "l_solid_4pt_c255-255-255" + DATA "gewaesserlinien" + TYPE LINE + GROUP "line" + STATUS ON + METADATA + "wms_title" "l_solid_4pt_c255-255-255" + END + CLASS + SYMBOL "l_solid_4pt_c255-255-255" + COLOR 0 0 0 + WIDTH 4 + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.mxd Binary file mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.png Binary file mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,3 @@ +SYMBOL + NAME "SimpleLineSolid" +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/line/SimpleLineSymbol/l_solid_4pt_c255-255-255.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +Type: Simple Line Symbol +Units: Points + +SimpleLine.Color: 0 0 0 +SimpleLine.Style: Solid +SimpleLine.Width: 4,0000 \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.lyr Binary file mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,19 @@ +LAYER + NAME "p_arrowmarker_0-0-0_12-0" + TYPE POINT + DATA "poi" + STATUS ON + GROUP "point" + METADATA + "wms_title" "p_arrowmarker_0-0-0_12-0" + END + CLASS + STYLE + SYMBOL "p_arrowmarker_0-0-0_12-0" + ANGLE 90 + COLOR 0 0 0 + SIZE 12 + WIDTH 8 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.mxd Binary file mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.png Binary file mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,11 @@ +SYMBOL + NAME "p_arrowmarker_0-0-0_12-0" + TYPE VECTOR + POINTS + 0 1 + 0.5 0 + 1 1 + 0 1 + END + FILLED TRUE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/ArrowMarkerSymbol/p_arrowmarker_0-0-0_12-0.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,11 @@ +Type: Arrow Marker Symbol +Units: Points + +ArrowMarker.Color: 0 0 0 +ArrowMarker.Length: 12,0000 +ArrowMarker.Width: 8,0000 +ArrowMarker.XOffset: 0,0000 +ArrowMarker.YOffset: 0,0000 +ArrowMarker.Angel: 0,00 + +Mask.Style: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.lyr Binary file mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,17 @@ +LAYER + NAME "p_charmarker_18pt_c255-0-0" + TYPE POINT + DATA "poi" + STATUS ON + GROUP "point" + METADATA + "wms_title" "p_charmarker_18pt_c255-0-0" + END + CLASS + STYLE + SYMBOL "p_charmarker_18pt_c255-0-0" + COLOR 255 0 0 + SIZE 18 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.mxd Binary file mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.png Binary file mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,7 @@ +SYMBOL + NAME "p_charmarker_18pt_c255-0-0" + TYPE TRUETYPE + FONT "ESRIDefaultMarker" + CHARACTER "B" + ANTIALIAS TRUE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/CharacterMarkerSymbol/p_charmarker_18pt_c255-0-0.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,14 @@ +Type: Character Marker Symbol +Units: Points + +CharacterMarker.Font: ESRI Default Marker +CharacterMarker.Subset: Basic Latin +CharacterMarker.Unicode: 66 +CharacterMarker.Size: 18 +CharacterMarker.Angel: 0,00 +CharacterMarker.Color: 255 0 0 +CharacterMarker.Offset.X:0,0000 +CharacterMarker.Offset.Y:0,0000 + + +CharacterMarker.Mask.Style: None diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.lyr Binary file mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,17 @@ +LAYER + NAME "p_single_18pt_c255-255-255_ttf" + TYPE POINT + DATA "poi" + STATUS ON + GROUP "point" + METADATA + "wms_title" "p_single_18pt_c255-255-255_ttf" + END + CLASS + STYLE + SYMBOL "p_single_18pt_c255-255-255_ttf" + COLOR 0 0 0 + SIZE 18 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.mxd Binary file mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.png Binary file mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,7 @@ +SYMBOL + NAME "p_single_18pt_c255-255-255_ttf" + TYPE TRUETYPE + FONT "ESRIDefaultMarker" + CHARACTER "F" + ANTIALIAS TRUE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/CharacterMarkerSymbol/p_single_18pt_c255-255-255_ttf.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +Type: Character Marker Symbol +Units: Points + +CharacterMarker.Font: ESRI Default Marker +CharacterMarker.Subset: Basic Latin +CharacterMarker.Unicode: 70 +CharacterMarker.Size: 18 +CharacterMarker.Angle: 0,00 +CharacterMarker.Color: 0 0 0 +CharacterMarker.Offset.X: 0,0000 +CharacterMarker.Offset.Y: 0,0000 + +Mask.Style: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.lyr Binary file mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,16 @@ +LAYER + NAME "p_pictmarker_11pt_warning.bmp" + TYPE POINT + DATA "poi" + STATUS ON + GROUP "point" + METADATA + "wms_title" "p_pictmarker_11pt_warning.bmp" + END + CLASS + STYLE + SYMBOL "p_pictmarker_11pt_warning.bmp" + SIZE 11 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.mxd Binary file mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.png Binary file mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,6 @@ +SYMBOL + NAME "p_pictmarker_11pt_warning.bmp" + TYPE PIXMAP + IMAGE "/home/intevation/mxd-testbed/images/warning.png" + TRANSPARENT 0 #PictureMarker.TransparentColor: 255 255 255 +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/PictureMarkerSymbol/p_pictmarker_11pt_warning.bmp.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,12 @@ +Type: Picture Marker Symbol +Units: Points + +PictureMarker.Picture: Z:\waring.bmp +PictureMarker.Size: 11,0 +PictureMarker.Angle: 0,00 +PictureMarker.XOffset: 0,00 +PictureMarker.YOffset: 0,00 +PictureMarker.BackgroundColor: No Color +PictureMarker.TransparentColor: 255 255 255 + +PictureMarker.Mask.Style: None diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/README.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/README.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,16 @@ +Possible types +============== + +* 3D Character Marker Symbol (deferred) +* 3D Marker Symbol (deferred) +* 3D Simple Marker Symbol (defeferred) +* Arrow Marker Symbol +* Character Marker Symbol +* Picture Marker Symbol +* Simple Marker Symbol + * Style: + * Circle + * Square + * Cross + * X + * Diamond diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/TODO.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/SimpleMarkerSymbol/TODO.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,7 @@ +MAPFILE fuer: +- p_categorie_4pt_11classes +- p_categorie_4pt_5quantity-classes + +Weitere Hinweise zu Colorramps: +http://mapserver.org/development/rfc/ms-rfc-6.html +http://trac.osgeo.org/mapserver/ticket/1305 diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_11classes.lyr Binary file mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_11classes.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_11classes.mxd Binary file mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_11classes.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_11classes.png Binary file mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_11classes.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_11classes.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_11classes.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,26 @@ +Symbology +Symbology.Categories.UniqueValues +Symbology.Categories.UniqueValues.ValueField:poiTypID + +Symbology.Categories.UniqueValues.ColorRamp: +Symbology.Categories.UniqueValues.ColorRamp.Ranges.MinimumValue:60 +Symbology.Categories.UniqueValues.ColorRamp.Ranges.MaximumValue:80 +Symbology.Categories.UniqueValues.ColorRamp.Ranges.MinimumSaturation:60 +Symbology.Categories.UniqueValues.ColorRamp.Ranges.MaximumSaturation:80 +Symbology.Categories.UniqueValues.ColorRamp.Ranges.SartHue:0 +Symbology.Categories.UniqueValues.ColorRamp.Ranges.EndHue:0 + +#Properties for All Symbols ... +Type: Simple Marker Symbol +Units: Points +SimpleMarker.Color: 128 128 128 +SimpleMarker.Style: Circle +SimpleMarker.Size: 4,0000 +SimpleMarker.XOffset: 0,0000 +SimpleMarker.YOffset: 0,0000 + +SimpleMarker.UseOutline: Yes/True +SimpleMarker.Outline: 0 0 0 +SimpleMarker.Outline.OutlineSize: 1,0000 + +SimpleMarker.Mask.Style: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_5quantity-classes.lyr Binary file mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_5quantity-classes.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_5quantity-classes.mxd Binary file mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_5quantity-classes.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_5quantity-classes.png Binary file mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_5quantity-classes.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_5quantity-classes.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/SimpleMarkerSymbol/p_categorie_4pt_5quantity-classes.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,31 @@ +Symbology + +Symbology.Quantities: Graduates colors +Symbology.Quantities.Fields.Value: poiTypID +Symbology.Quantities.Fields.Normalization: none +Symbology.Quantities.Classification.Method: Natural Breaks (Jenks) +Symbology.Quantities.Classification.Classes: 5 +Symbology.Quantities.Classification.Columns: 100 +Symbology.Quantities.Classification.BreakValues: 2 4 5 7 10 + +Symbology.ColorRamp.General.Colors.Color1.HSV: 164 17% 96% +Symbology.ColorRamp.General.Colors.Color2.HSV: 157 77% 81% +Symbology.ColorRamp.General.Algorithm: CIE Lab +Symbology.ColorRamp.Black: #FIXME SLIDER +Symbology.ColorRamp.White: #FIXME SLIDER + +#Properties for All Symbols ... +Type: Simple Marker Symbol +Units: Points + +SimpleMarker.Color.HSV: 164 17% 96% +SimpleMarker.Style: Circle +SimpleMarker.Size: 4,0000 +SimpleMarker.XOffset: 0,0000 +SimpleMarker.YOffset: 0,0000 + +SimpleMarker.UseOutline: Yes/True +SimpleMarker.Outline: 0 0 0 +SimpleMarker.OutlineSize: 1,0000 + +SimpleMarker.Mask.Style: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.lyr Binary file mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,18 @@ +LAYER + NAME "p_single_4pt_c255-0-0" + TYPE POINT + DATA "poi" + STATUS ON + GROUP "point" + METADATA + "wms_title" "p_single_4pt_c255-0-0" + END + CLASS + STYLE + SYMBOL "p_single_4pt_c255-0-0" + SIZE 4 + COLOR 255 0 0 + OUTLINECOLOR 0 0 0 + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.mxd Binary file mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.png Binary file mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,8 @@ +SYMBOL + NAME "p_single_4pt_c255-0-0" + TYPE ELLIPSE + POINTS + 1 1 + END + FILLED TRUE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/point/SimpleMarkerSymbol/p_single_4pt_c255-0-0.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +Type: Simple Marker Symbol +Units: Points + +SimpleMarker.Color: 255 0 0 +SimpleMarker.Style: Circle +SimpleMarker.Size: 4,0000 +SimpleMarker.XOffset: 0,0000 +SimpleMarker.YOffset: 0,0000 +SimpleMarker.UseOutline: Yes/True +SimpleMarker.Outline: 0 0 0 +SimpleMarker.OutlineSize: 1,0000 + +SimplerMarker.Mask: None \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/GradientFillSymbol/pol_gradientfill_5_75_90_Linear.lyr Binary file mxd/Styles/polygon/GradientFillSymbol/pol_gradientfill_5_75_90_Linear.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/GradientFillSymbol/pol_gradientfill_5_75_90_Linear.mxd Binary file mxd/Styles/polygon/GradientFillSymbol/pol_gradientfill_5_75_90_Linear.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/GradientFillSymbol/pol_gradientfill_5_75_90_Linear.png Binary file mxd/Styles/polygon/GradientFillSymbol/pol_gradientfill_5_75_90_Linear.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/GradientFillSymbol/pol_gradientfill_5_75_90_Linear.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/GradientFillSymbol/pol_gradientfill_5_75_90_Linear.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,18 @@ +pol_gradientfill_5_75_90_Linear + +Type: Gradient Fill symbol +Units: Points +GradientFill.Intervals: 5 +GradientFill.Percentage: 75 +GradientFill.Angle: 90 +GradientFill.Style: Linear +GradientFill.ColorRamp.General.Color1: HSV 120 20% 100% +GradientFill.ColorRamp.General.Algorithm: CIE Lab +GradientFill.ColorRamp.General.Black: +GradientFill.ColorRamp.General.White: + + +GradientFill.Outline.Type: Simple Line Symbol +GradientFill.Outline.SimpleLine.Color: 110 110 110 +GradientFill.Outline.SimpleLine.Style:Solid +GradientFill.Outline.SimpleLine.Width: 1,0000 \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.lyr Binary file mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,24 @@ +LAYER + NAME "pol_linefill_255-0-0_45_outline" + TYPE POLYGON + DATA "gruenflaechen" + STATUS ON + GROUP "polygon" + METADATA + "wms_title" "pol_linefill_255-0-0_45_outline" + END + CLASS + STYLE + SYMBOL "pol_linefill_255-0-0_45_outline" + COLOR 255 0 0 + ANGLE 45 + SIZE 10 + WIDTH 3 + END + STYLE # outline + OUTLINECOLOR 0 0 0 + WIDTH 1 + ANTIALIAS TRUE + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.mxd Binary file mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.png Binary file mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,4 @@ +SYMBOL + NAME "pol_linefill_255-0-0_45_outline" + TYPE HATCH +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/LineFillSymbol/pol_linefill_255-0-0_45_outline.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,21 @@ +Type: Line Fill Symbol +Units: Points + +LineFill.Color: 255 0 0 +LineFill.Line.Type: Simple Line Symbol +LineFill.Line.Units: Points + +LineFill.Line.SimpleLine.Color: 255 0 0 +LineFill.Line.SimpleLine.Style: Dotted +LineFill.Line.SimpleLine.Width: 1,0000 + +LineFill.Outline.Type: Simple Line Symbol +LineFill.Outline.Units: Points + +LineFill.Outline.SimpleLine.Color: 0 0 0 +LineFill.Outline.SimpleLine.Style: Soild +LineFill.Outline.SimpleLine.Width: 1,0000 + +LineFill.Angle: 45,00 +LineFill.Offset: 0,0000 +LineFill.Separation: 5,0000 \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.lyr Binary file mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,22 @@ +LAYER + NAME "pol_marker_fill_0-0-0_1" + TYPE POLYGON + DATA "gewaesserflaechen" + STATUS ON + GROUP "polygon" + METADATA + "wms_title" "pol_marker_fill_0-0-0_1" + END + CLASS + STYLE + SYMBOL "pol_marker_fill_0-0-0_1" + COLOR 0 0 0 + SIZE 8 + END + STYLE # outline + OUTLINECOLOR 110 110 110 + WIDTH 1 + ANTIALIAS TRUE + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.mxd Binary file mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.png Binary file mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,8 @@ +SYMBOL + NAME "pol_marker_fill_0-0-0_1" + TYPE ELLIPSE + POINTS + 1 1 + END + FILLED TRUE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/MarkerFillSymbol/pol_marker_fill_0-0-0_1.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,20 @@ +Type: Maker Fill Symbol +Units: Points + +MarkerFill.Color: 0 0 0 +MarkerFill.Marker.Type: Simple Marker Symbol +MarkerFill.Marker.Units: Points +MarkerFill.Marker.SimpleMarker.Color: 0 0 0 +MarkerFill.Marker.SimpleMarker.Style: Circle +MarkerFill.Marker.SimpleMarker.Size: 8,0000 +MarkerFill.Marker.SimpleMarker.XOffset: 0,0000 +MarkerFill.Marker.SimpleMarker.YOffset: 0,0000 +MarkerFill.Marker.SimpleMarker.UseOutline: #NotSet + +MarkerFill.Outline.Type: Simple Line Symbol +MarkerFill.Outline.Units: Points +MarkerFill.Outline.SimpleLine.Color: 110 110 100 +MarkerFill.Outline.Style: Solid +MarkerFill.Outline.Width: 1,0000 + +MarkerFill.Grid: Yes/True \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.lyr Binary file mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,20 @@ +LAYER + NAME "pol_single_04pt_109-187-67_0-1-1_Grassland" + TYPE POLYGON + DATA "gruenflaechen" + STATUS ON + GROUP "polygon" + METADATA + "wms_title" "pol_single_04pt_109-187-67_0-1-1_Grassland" + END + CLASS + STYLE + SYMBOL "pol_single_04pt_109-187-67_0-1-1_Grassland" + END + STYLE # outline + OUTLINECOLOR 109 187 67 + WIDTH 1 + ANTIALIAS TRUE + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.mxd Binary file mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.png Binary file mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,5 @@ +SYMBOL + NAME "pol_single_04pt_109-187-67_0-1-1_Grassland" + TYPE PIXMAP + IMAGE "/home/intevation/mxd-testbed/images/grass.png" +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/PictureFillSymbol/pol_single_04pt_109-187-67_0-1-1_Grassland.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,22 @@ +Type: Picture Fill Symbol +Units: Points + +PictureFill.Picture: Grassland +PictureFill.Angle: 0,00 +PictureFill.ScaleX: 1,00 +PictureFill.ScaleY: 1,00 +PictureFill.ForegroundColor: 109 187 67 +PictureFill.BackgroundColor: 255 255 255 +PictureFill.TransparentColor: #NotSet +PictureFill.SwapForegroundAndBackgroundColorOn1BitImages: #NotSet + +PictureFill.Outline.Type: Simple Line Symbol +PictureFill.Outline.Units: Points +PictureFill.Outline.simpleLine.Color: 109 187 67 +PictureFill.Outline.SimpleLine.Style: Solid +PictureFill.Outline.SimpleLine.Width: 0,4000 + +PictureFill.FillProperties.Offset.X: 0,0000 +PicutreFill.FillProperties.Offset.Y: 0,0000 +PictureFill.FillProperties.Separation.X: 0,0000 +PictureFill.FillProperties.Separation.Y: 0,0000 \ No newline at end of file diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/README.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/README.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,9 @@ +Possible types +============== + +* 3D Texture Fill Symbol (deferred) +* Gradient Fill Symbol +* Line Fill Symbol +* Marker Fill Symbol +* Picture Fill Symbol +* Simple Fill Symbol diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.lyr Binary file mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,21 @@ +LAYER + NAME "pol_simple_255-0-0" + TYPE POLYGON + DATA "gruenflaechen" + STATUS ON + GROUP "polygon" + METADATA + "wms_title" "pol_simple_255-0-0" + END + CLASS + STYLE + SYMBOL "pol_simple_255-0-0" + COLOR 255 0 0 + END + STYLE # outline + OUTLINECOLOR 0 0 0 + WIDTH 1 + ANTIALIAS TRUE + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.mxd Binary file mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.png Binary file mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,5 @@ +SYMBOL + NAME "pol_simple_255-0-0" + TYPE SIMPLE + FILLED TRUE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/SimpleFillSymbol/pol_simple_255-0-0.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +Type: Simple Fill Symbol +Units: Points + +SimpleFill.Color: 255 0 0 +SimpleFill.OutlineColor: 0 0 0 +SimpleFill.OutlineWidth: 1,0000 + +SimpleFill.Outline.Type: SimpleLineSymbol +SimpleFill.Outline.Units: Points + +SimpleFill.Outline.SimpleLine.Color: 0 0 0 +SimpleFill.Outline.SimpleLine.Style: Solid +SimpleFill.Outline.SimpleLine.Width: 1,0000 diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.lyr Binary file mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.lyr has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.map Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,21 @@ +LAYER + NAME "pol_simple_transp_dashed-outline" + TYPE POLYGON + DATA "gruenflaechen" + STATUS ON + GROUP "polygon" + METADATA + "wms_title" "pol_simple_transp_dashed-outline" + END + CLASS + STYLE + SYMBOL "pol_simple_transp_dashed-outline" + END + STYLE # outline + SYMBOL "l_dashed_1pt_c255-255-255" + OUTLINECOLOR 0 0 0 + WIDTH 1 + ANTIALIAS TRUE + END + END +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.mxd Binary file mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.png Binary file mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.png has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.sym --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.sym Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,5 @@ +SYMBOL + NAME "pol_simple_transp_dashed-outline" + TYPE SIMPLE + FILLED FALSE +END diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/Styles/polygon/SimpleFillSymbol/pol_simple_transp_dashed-outline.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,12 @@ +Type: Simple Fill Symbol +Units: Points + +SimpleFill.color: No Color +SimpleFill.OutlineColor: 0 0 0 +SimpleFill.OutlineWidth: 1,0000 + +SimpleFill.Outline.Type: Simple Line Symbol +SimpleFill.Outline.Units: Points +SimpleFill.Outline.SimpleLine.Color: 0 0 0 +SimpleFill.Outline.SimpleLine.Style: Dashed +SimpleFill.Outline.SimpleLine.Width: 1,0000 diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/connections/PGDB/pgdb_areas.mxd Binary file mxd/connections/PGDB/pgdb_areas.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/connections/PGDB/pgdb_areas.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/connections/PGDB/pgdb_areas.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,1 @@ +Layer-Verbindung zu Personal Geodatabase ist hier einzig interessant. diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/connections/SDE/sde_areas.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mxd/connections/SDE/sde_areas.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,13 @@ +SDE:server,instanz,db,user,pw,table table +ogrinfo -al -so SDE:pluto,5152,SGE.SGEFeatures,gast,gast,SGE.SGEAreas \ +SGE.AREAS + +LAYER + ... + CONNECTIONTYPE PLUGIN + CONNECTION "hostname,port:xxx,database,username,password" + PLUGIN "C:/ms_6.1-dev/bin/msplugin_sde_93.dll" + DATA "layername,geometrycolumn,SDE.DEFAULT" + ... +END # layer + diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/empty-mxd.mxd Binary file mxd/empty-mxd.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 mxd/projections/DHDN-projection-dataframe.mxd Binary file mxd/projections/DHDN-projection-dataframe.mxd has changed diff -r 1618d68cb723 -r 3ac0968e26f3 properties.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/properties.xml Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/ArcGISInitializer.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/ArcGISInitializer.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,143 @@ +package de.intevation.mxd; + +import java.io.IOException; +import java.io.File; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.system.AoInitialize; +import com.esri.arcgis.system.EngineInitializer; +import com.esri.arcgis.system.esriLicenseProductCode; +import com.esri.arcgis.system.esriLicenseStatus; + +/** + * Initializes the ArcGIS Engine and Objects. + * + * @author Raimund Renkert + */ +public class ArcGISInitializer { + + /** + * The Logger. + */ + private static final Logger logger = Logger.getLogger(ArcGISInitializer.class); + + /** + * Private member. + */ + private AoInitialize aoInit; + private String engineInstallDir = ""; + + + /** + * Init ArcGIS Java Objects. + */ + public boolean initArcGIS () + throws IOException { + logger.debug("initArcGIS()"); + + String engineInstallDir = System.getenv("AGSENGINEJAVA"); + if(engineInstallDir == null) { + engineInstallDir = System.getenv("AGSDESKTOPJAVA"); + if(engineInstallDir == null) { + logger.error("Could not find ArcGIS Environment. \n" + + "AGSENGINEJAVA or AGSDESKTOPJAVA not set."); + return false; + } + } + + //Obtain the relative path to the arcobjects.jar file + String jarPath = engineInstallDir + "java" + File.separator + "lib" + + File.separator + "arcobjects.jar"; + + //Create a new file + File jarFile = new File(jarPath); + + //Test for file existence + if(!jarFile.exists()){ + logger.error("The arcobjects.jar was not found in the following location: " + + jarFile.getParent()); + logger.error("Verify that arcobjects.jar can be located in the specified folder."); + logger.error("If not present, try uninstalling your ArcGIS software and reinstalling it."); + System.exit(0); + } + + //Helps load classes and resources from a search path of URLs + URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader(); + Class sysclass = URLClassLoader.class; + + try { + Method method = sysclass.getDeclaredMethod("addURL", new Class[]{URL.class}); + method.setAccessible(true); + method.invoke(sysloader, new Object[]{jarFile.toURI().toURL()}); + } + catch (Throwable throwable) { + throwable.printStackTrace(); + logger.error("Could not add arcobjects.jar to system classloader"); + System.exit(0); + } + + EngineInitializer.initializeEngine(); + + aoInit = new AoInitialize(); + return true; + } + + /** + * Init ArcGIS License. + */ + public boolean initArcGISLicenses() + throws IOException { + logger.debug("initArcGISLicenses()"); + if(aoInit.isProductCodeAvailable + (esriLicenseProductCode.esriLicenseProductCodeEngine) == + esriLicenseStatus.esriLicenseAvailable) { + aoInit.initialize + (esriLicenseProductCode.esriLicenseProductCodeEngine); + } + else if (aoInit.isProductCodeAvailable + (esriLicenseProductCode.esriLicenseProductCodeArcView) == + esriLicenseStatus.esriLicenseAvailable) { + aoInit.initialize + (esriLicenseProductCode.esriLicenseProductCodeArcView); + } + else { + logger.error("Engine Runtime or ArcView" + + " license not initialized.\n" + + "Please install an ArcGIS product and set the" + + " PATH-variable correctly."); + return false; + } + return true; + } + + /** + * Shutdown the ArcGIS Objects. + */ + public boolean shutdownArcGIS() + throws IOException { + if(aoInit != null) { + aoInit.shutdown(); + return true; + } + else { + return false; + } + } + + /** + * Get the ArcGIS Engine Directory. + */ + public String getEngineDirectory() + throws Exception { + if(engineInstallDir == "") { + throw new Exception("Call initArcGIS() first!"); + } + else { + return engineInstallDir; + } + } +} diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/Converter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/Converter.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,147 @@ +package de.intevation.mxd; + +import java.io.File; +import java.io.FileInputStream; +import java.io.BufferedInputStream; +import java.util.Properties; + +import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; + +import java.net.MalformedURLException; + +import de.intevation.mxd.reader.IReader; +import de.intevation.mxd.reader.MXDReader; +import de.intevation.mxd.writer.IWriter; +import de.intevation.mxd.writer.MapScriptWriter; +/** + * The entry point of the MXD converter tool. + * + * @author Ingo Weinzierl + */ +public class Converter { + + /** + * The logging is done via Log4j. To configure the logging + * a file 'log4j.properties' is search in the configuration + * directory. + */ + public static final String LOG4J_PROPERTIES = "log4j.properties"; + + /** + * + * The path of the configuration directory. + */ + public static final String CONFIG_PATH = System.getProperty("config.dir", + "conf"); + + + /** + * The logger used in this class. + */ + private static Logger logger; + + static { + configureLogging(); + logger = Logger.getLogger(Converter.class); + } + + + /** + * Entrypoint for the application. + */ + public static void main(String[] args) { + try{ + String mxdfile = ""; + String mapfile = ""; + String maptemplate = ""; + int ndx = 0; + if (args.length > 0) { + if (args[0].equals("-mxd") && args.length >= 2) { + mxdfile = args[1]; + ndx = 2; + } + } + if (args.length >= ndx + 2) { + if (args[ndx].equals("-map")) { + mapfile = args[ndx+1]; + ndx += 2; + } + } + if (args.length >= ndx + 2) { + if (args[ndx].equals("-template")) { + maptemplate = args[ndx+1]; + ndx += 2; + } + } + + if(mxdfile.equals("")) { + try { + mxdfile = readProperty("mxd"); + } + catch(Exception e) { + e.printStackTrace (); + } + } + if(mapfile.equals("")) { + try { + mapfile = readProperty("map"); + } + catch(Exception e) { + e.printStackTrace (); + } + } + if(maptemplate.equals("")) { + try { + maptemplate = readProperty("map-template"); + } + catch(Exception e) { + e.printStackTrace (); + } + } + + IReader reader = new MXDReader(); + IWriter writer = new MapScriptWriter(maptemplate, mapfile); + + reader.init(); + reader.setFilename(mxdfile); + reader.read(); + + writer.write(reader.getMapDocument()); + reader.shutdown(); + } + catch(Exception e) { + logger.error(e.getMessage()); + } + } + + private static String readProperty (String key) + throws Exception { + Properties properties = new Properties(); + BufferedInputStream stream = + new BufferedInputStream( + new FileInputStream("converter.properties") + ); + properties.load(stream); + stream.close(); + return properties.getProperty(key); + } + /** + * Trys to load the Log4j configuration + * from ${config.dir}/log4j.properties. + */ + public static final void configureLogging() { + File configDir = new File(CONFIG_PATH); + File propFile = new File(configDir, LOG4J_PROPERTIES); + if (propFile.isFile() && propFile.canRead()) { + try { + PropertyConfigurator.configure(propFile.toURI().toURL()); + } + catch (MalformedURLException mue) { + mue.printStackTrace(System.err); + } + } + } + +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/AbstractSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/AbstractSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,45 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import org.w3c.dom.Element; +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * Reads multi layer marker symbol information. + * + * @author Raimund Renkert + */ +public abstract class AbstractSymbolReader implements ISymbolReader{ + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(AbstractSymbolReader.class); + + /** + * Private member. + */ + protected Element parent; + protected MapToXMLUtils util; + + + /** + * Setter for the parent XML element. + * + * @param parent The XML parent node. + */ + public void setParent(Element p) { + this.parent = p; + } + + /** + * Setter for XML document helper. + * + * @param util The helper class for storing map information. + */ + public void setUtil(MapToXMLUtils u) { + this.util = u; + } +} diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/ArrowMarkerSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,162 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IMarkerSymbol; +import com.esri.arcgis.display.ArrowMarkerSymbol; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; + +import org.w3c.dom.Element; +import java.awt.Color; + +import java.io.IOException; + +/** + * Reads arrow marker symbol information. + * + * @author Raimund Renkert + */ +public class ArrowMarkerSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(ArrowMarkerSymbolReader.class); + + /** + * Private member. + */ + private ArrowMarkerSymbol symbol; + + public ArrowMarkerSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof ArrowMarkerSymbol) { + this.symbol = (ArrowMarkerSymbol)symbol; + } + else { + throw new Exception("Not a ArrowMarkerSymbol!"); + } + } + + public ArrowMarkerSymbolReader(IMarkerSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof ArrowMarkerSymbol) { + this.symbol = (ArrowMarkerSymbol)symbol; + } + else { + throw new Exception("Not a ArrowMarkerSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + Element symbolElement = util.addSymbol(parent); + + try{ + if(symbol.getColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(color.getTransparency())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(col.getTransparency())); + } + } + catch(IOException ioe) { + logger.warn("Could not read color."); + } + + try { + symbolElement.setAttribute( + "angle", + String.valueOf(symbol.getAngle())); + } + catch(IOException ioe) { + logger.warn("Could not read angle."); + } + + try { + symbolElement.setAttribute( + "size", + String.valueOf(symbol.getSize())); + } + catch(IOException ioe) { + logger.warn("Could not read size. Setting size to 1."); + symbolElement.setAttribute("size", "1"); + } + + try { + symbolElement.setAttribute( + "x_offset", + String.valueOf(symbol.getXOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read x-offset."); + } + + try { + symbolElement.setAttribute( + "y_offset", + String.valueOf(symbol.getYOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read y-offset."); + } + + try { + symbolElement.setAttribute( + "name", + symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\""); + symbolElement.setAttribute("name", "default"); + } + + try { + symbolElement.setAttribute( + "length", + String.valueOf(symbol.getLength())); + } + catch(IOException ioe) { + logger.warn("Could not read length."); + } + + try { + symbolElement.setAttribute( + "width", + String.valueOf(symbol.getWidth())); + } + catch(IOException ioe) { + logger.warn("Could not read width."); + } + symbolElement.setAttribute("style", "arrow"); + symbolElement.setAttribute("type", "marker"); + return symbolElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/CartoLineSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/CartoLineSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,207 @@ +package de.intevation.mxd.reader; + +import java.awt.Color; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.ILineSymbol; +import com.esri.arcgis.display.CartographicLineSymbol; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; +import com.esri.arcgis.display.Template; + +import com.esri.arcgis.display.esriLineCapStyle; +import com.esri.arcgis.display.esriLineJoinStyle; + +import org.w3c.dom.Element; +import java.io.IOException; + +/** + * Reads cartoline symbol information. + * + * @author Raimund Renkert + */ +public class CartoLineSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(CartoLineSymbolReader.class); + + /** + * Private member. + */ + private CartographicLineSymbol symbol; + + public CartoLineSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof CartographicLineSymbol) { + this.symbol = (CartographicLineSymbol)symbol; + } + else { + throw new Exception("Not a CartographicLineSymbol!"); + } + } + + + public CartoLineSymbolReader(ILineSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof CartographicLineSymbol) { + this.symbol = (CartographicLineSymbol)symbol; + } + else { + throw new Exception("Not a CartographicLineSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + Element symbolElement = util.addSymbol(parent); + + try { + symbolElement.setAttribute("name", symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\""); + symbolElement.setAttribute("name", "default"); + } + + try { + if(symbol.getColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + } + } + catch(IOException ioe) { + logger.warn("Could not read color."); + } + + int cap; + String capStyle = ""; + try { + cap = symbol.getCap(); + } + catch(IOException ioe) { + logger.warn( + "Could not read line cap."); + cap = -1; + } + switch(cap) { + case esriLineCapStyle.esriLCSRound: capStyle = "round"; break; + case esriLineCapStyle.esriLCSSquare: capStyle = "square"; break; + default: break; + } + + + int join; + String joinStyle = ""; + try { + join = symbol.getJoin(); + } + catch(IOException ioe) { + logger.warn( + "Could not read line join." + + " Setting line join to \"bevel\"."); + join = -1; + } + switch(join) { + case esriLineJoinStyle.esriLJSRound: joinStyle = "round"; break; + case esriLineJoinStyle.esriLJSMitre: joinStyle = "miter"; break; + default: break; + } + if(!capStyle.equals("")) { + symbolElement.setAttribute("cap", capStyle); + } + if (!joinStyle.equals("")) { + symbolElement.setAttribute("join", joinStyle); + } + + try { + symbolElement.setAttribute( + "linestart", + String.valueOf(symbol.getLineStartOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read line start offset."); + } + + try { + symbolElement.setAttribute( + "miterlimit", + String.valueOf(symbol.getMiterLimit())); + } + catch(IOException ioe) { + logger.warn("Could not read miter limit."); + } + + try { + symbolElement.setAttribute( + "offset", + String.valueOf(symbol.getOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read offset."); + } + + try { + symbolElement.setAttribute( + "width", + String.valueOf(symbol.getWidth())); + } + catch(IOException ioe) { + logger.warn("Could not read width."); + } + //TODO Read further attributes depending on the Mapscript functionality: + // Template, MarkerSymbol, LineDecorations + + try { + Template temp = (Template)symbol.getTemplate(); + double length = temp.getInterval(); + int count = temp.getPatternElementCount(); + symbolElement.setAttribute("pattern_count", String.valueOf(count)); + for (int j = 0; j < count; j++) { + double[] mark = new double[1]; + double[] gap = new double[1]; + temp.getPatternElement(j, mark, gap); + symbolElement.setAttribute( + "mark_" + j, + String.valueOf(mark[0])); + symbolElement.setAttribute("gap_" + j, String.valueOf(gap[0])); + } + } + catch(IOException ioe){ + logger.warn("Could not read pattern elements."); + } + catch(NullPointerException npe) { + logger.debug("No pattern elements in carto line symbol"); + } + symbolElement.setAttribute("type", "line"); + symbolElement.setAttribute("style", "carto"); + + return symbolElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/CharacterMarkerSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,170 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IMarkerSymbol; +import com.esri.arcgis.display.CharacterMarkerSymbol; +import com.esri.arcgis.support.ms.stdole.Font; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; + +import org.w3c.dom.Element; +import java.awt.Color; +import java.io.IOException; + +/** + * Reads character marker symbol information. + * + * @author Raimund Renkert + */ +public class CharacterMarkerSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(CharacterMarkerSymbolReader.class); + + /** + * Private member. + */ + private CharacterMarkerSymbol symbol; + + public CharacterMarkerSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof CharacterMarkerSymbol) { + this.symbol = (CharacterMarkerSymbol)symbol; + } + else { + throw new Exception("Not a CharacterMarkerSymbol!"); + } + } + + public CharacterMarkerSymbolReader(IMarkerSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof CharacterMarkerSymbol) { + this.symbol = (CharacterMarkerSymbol)symbol; + } + else { + throw new Exception("Not a CharacterMarkerSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + Element symbolElement = util.addSymbol(parent); + + try { + symbolElement.setAttribute( + "angle", + String.valueOf(symbol.getAngle())); + } + catch(IOException ioe) { + logger.warn("Could not read angle."); + } + + try { + symbolElement.setAttribute( + "size", + String.valueOf(symbol.getSize())); + } + catch(IOException ioe) { + logger.warn("Could not read size."); + } + + try { + symbolElement.setAttribute( + "x_offset", + String.valueOf(symbol.getXOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read x-offset."); + } + + try { + symbolElement.setAttribute( + "y_offset", + String.valueOf(symbol.getYOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read y-offset."); + } + + try { + symbolElement.setAttribute( + "name", + symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\""); + symbolElement.setAttribute("name", "default"); + } + + try { + symbolElement.setAttribute( + "char", + String.valueOf(symbol.getCharacterIndex())); + } + catch(IOException ioe) { + logger.warn( + "Could not read character number."); + } + + try { + if(symbol.getColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(color.getTransparency())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(col.getTransparency())); + } + } + catch(IOException ioe) { + logger.warn("Could not read color."); + } + + try { + Font f = symbol.getFont(); + symbolElement.setAttribute("font", f.getName()); + symbolElement.setAttribute("char_set", String.valueOf(f.getCharset())); + symbolElement.setAttribute("bold", String.valueOf(f.getBold())); + symbolElement.setAttribute("italic", String.valueOf(f.getItalic())); + symbolElement.setAttribute("font_size", String.valueOf(f.getSize())); + symbolElement.setAttribute( + "strike_through", + String.valueOf(f.getStrikethrough())); + symbolElement.setAttribute("weight", String.valueOf(f.getWeight())); + } + catch(IOException ioe) { + logger.warn("Could not read font. Setting font to \"FreeSans\"."); + symbolElement.setAttribute("font", "FreeSans"); + } + symbolElement.setAttribute("style", "char"); + symbolElement.setAttribute("type", "marker"); + return symbolElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/ClassBreakRendererReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,141 @@ +package de.intevation.mxd.reader; + +import java.lang.Exception; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.carto.IFeatureRenderer; +import com.esri.arcgis.carto.ClassBreaksRenderer; +import com.esri.arcgis.display.ISymbol; + +import org.w3c.dom.Element; + +import de.intevation.mxd.utils.MapToXMLUtils; +import java.io.IOException; + +/** + * Reads the ClassBreaksRender Object Attributes. + * + * @author Raimund Renkert + */ +public class ClassBreakRendererReader +implements IRendererReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(ClassBreakRendererReader.class); + + /** + * Private member. + */ + private ClassBreaksRenderer renderer; + private Element layer; + private MapToXMLUtils util; + + + public ClassBreakRendererReader(IFeatureRenderer renderer) + throws Exception { + logger.debug("contructor()"); + if(renderer instanceof ClassBreaksRenderer) + this.renderer = (ClassBreaksRenderer)renderer; + else + throw new Exception("Not a ClassBreaksRenderer!"); + } + + /** + * Setter for the parent XML element. + * + * @param parent The XML parent node. + */ + public void setParent(Element parent) { + this.layer = parent; + } + + /** + * Setter for XML document helper. + * + * @param util The helper class for storing map information. + */ + public void setUtil(MapToXMLUtils util) { + this.util = util; + } + + /** + * Reads the Renderer attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + + int count = 0; + try { + count = renderer.getBreakCount(); + } + catch(IOException ioe) { + logger.warn( + "No break symbols found in renderer." + + " Stopped reading this renderer."); + return layer; + } + + for(int i = 0; i < count; i++){ + Element rendererElement = util.addRenderer(layer); + try { + rendererElement.setAttribute("value", + String.valueOf(renderer.getBreak(i))); + rendererElement.setAttribute("label", renderer.getLabel(i)); + rendererElement.setAttribute( + "field_count", + String.valueOf(renderer.getFieldCount())); + for(int j = 0; j < renderer.getFieldCount(); j++) { + rendererElement.setAttribute( + "expression_field_" + j, + renderer.getField(j)); + + } + rendererElement.setAttribute( + "min_value", + String.valueOf(renderer.getLowBreak(i))); + rendererElement.setAttribute("expression_operator", "<="); + + ISymbol sym = renderer.getSymbol(i); + MarkerSymbolReader markerReader = new MarkerSymbolReader(); + LineSymbolReader lineReader = new LineSymbolReader(); + FillSymbolReader fillReader = new FillSymbolReader(); + if(markerReader.canRead(sym)) { + markerReader.setSymbol(sym); + markerReader.setUtil(util); + markerReader.setParent(rendererElement); + markerReader.read(); + } + else if(lineReader.canRead(sym)) { + lineReader.setSymbol(sym); + lineReader.setUtil(util); + lineReader.setParent(rendererElement); + lineReader.read(); + } + else if(fillReader.canRead(sym)) { + fillReader.setSymbol(sym); + fillReader.setUtil(util); + fillReader.setParent(rendererElement); + fillReader.read(); + } + else { + logger.debug("Not a known symbol type: " + + sym.getClass().toString()); + } + } + catch(Exception e) { + logger.error( + "Could not read data for " + i + + ". break of renderer. Stopped reading this renderer."); + return layer; + } + } + return layer; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/FeatureClassReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/FeatureClassReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,65 @@ +package de.intevation.mxd.reader; + +import java.io.IOException; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.geodatabase.IClass; +import com.esri.arcgis.geodatabase.FeatureClass; + +import org.w3c.dom.Node; + +/** + * Reads FeatureClass information. + * + * @author Raimund Renkert + */ +public class FeatureClassReader +implements IClassReader { + + /** + * The Logger. + */ + private static final Logger logger = + Logger.getLogger(FeatureClassReader.class); + + /** + * Private member. + */ + private IClass fclass; + private Node parent; + + + public FeatureClassReader(IClass cl) + throws Exception { + if(cl instanceof FeatureClass) { + this.fclass = cl; + } + else { + throw new Exception("Not a FeatureClass object!" + + cl.getClass().toString()); + } + } + + /** + * Reads the Layer content. + * + * @return Currently always false. + */ + public boolean read() + throws IOException { + logger.debug("read() -> not implemented jet."); + return false; + } + + public void getClassDoc() + throws IOException { + logger.debug("getLayer() -> not implemented jet."); + return; + } + + public void setXMLNode(Node node) { + parent = node; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/FeatureLayerReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/FeatureLayerReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,229 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.carto.ILayer; +import com.esri.arcgis.carto.FeatureLayer; +import com.esri.arcgis.geodatabase.FeatureClassName; +import com.esri.arcgis.system.IName; +import com.esri.arcgis.system.IPropertySet; +import org.w3c.dom.Element; + +import de.intevation.mxd.utils.MapToXMLUtils; +import java.io.IOException; +import com.esri.arcgis.interop.AutomationException; +/** + * Reads Layer information. + * + * @author Raimund Renkert + */ +public class FeatureLayerReader +implements ILayerReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(FeatureLayerReader.class); + + /** + * Privte member. + */ + private FeatureLayer layer; + private MapToXMLUtils util; + + + public FeatureLayerReader(ILayer layer) + throws Exception { + if(layer instanceof FeatureLayer) { + this.layer = (FeatureLayer)layer; + } + else { + throw new Exception("Not an instance of FeatureLayer: " + + layer.getClass().toString()); + } + } + + /** + * Setter for XML document helper. + * + * @param util The helper for storing map information. + */ + public void setUtil(MapToXMLUtils util) { + this.util = util; + } + + /** + * Reads the Layer content. + * + * @return The layer XML element. + */ + public Element read() + throws IOException{ + logger.debug("read()"); + Element layerElement; + try { + layerElement = util.addLayer(); + } + catch(Exception e) { + logger.error("Failed to create DOM-Element for Layer."); + return null; + } + + try { + layerElement.setAttribute("name", layer.getName()); + } + catch(IOException ioe) { + logger.warn( + "Could not read layer name." + + " Stopped reading layer."); + throw new IOException("Error reading layer name."); + } + + try { + layerElement.setAttribute("min_scale", + String.valueOf(layer.getMinimumScale())); + } + catch(IOException ioe) { + logger.warn("Could not read minimum scale."); + } + + try { + layerElement.setAttribute("max_scale", + String.valueOf(layer.getMaximumScale())); + } + catch(IOException ioe) { + logger.warn( + "Could not read maximum scale."); + } + + try { + if(layer.isVisible()) { + layerElement.setAttribute("status", "on"); + } + else { + layerElement.setAttribute("status", "off"); + } + } + catch(IOException ioe) { + logger.warn( + "Could not read layer status." + + " Setting layer status to \"on\"."); + layerElement.setAttribute("status", "on"); + } + + int type = 0; + try { + type = layer.getShapeType(); + } + catch(IOException ioe) { + logger.warn("Could not read shape type."); + throw new IOException("Error reading shape type."); + } + switch (type) { + case 0: layerElement.setAttribute("type", "none"); break; + case 1: layerElement.setAttribute("type", "point"); break; + case 3: layerElement.setAttribute("type", "line"); break; + case 4: layerElement.setAttribute("type", "polygon"); break; + } + + try { + layerElement.setAttribute("definition_query", + layer.getDefinitionExpression()); + } + catch(IOException ioe) { + logger.warn( + "Could not read definition query."); + } + try { + IName fcn = layer.getDataSourceName(); + if(fcn instanceof FeatureClassName) { + FeatureClassName name = (FeatureClassName)fcn; + layerElement.setAttribute("data_source", name.getName()); + } + else { + logger.debug ( + "Unknown FeatureClass name:" + + fcn.getClass().toString()); + } + } + catch(IOException ioe) { + logger.warn( + "Could not read datasource." + + " Stopped reading layer " + layer.getName() + "."); + util.removeLayer(layerElement); + return null; + } + + try { + String datatype = layer.getDataSourceType(); + if(layer.getWorkspace().getType() == 0) { + layerElement.setAttribute("connection_type", "local"); + layerElement.setAttribute( + "workspace", + layer.getWorkspace().getPathName()); + } + else if(layer.getWorkspace().getType() == 1){ + layerElement.setAttribute("connection_type", "ogr"); + layerElement.setAttribute( + "data", + layer.getFeatureClass().getFeatureDataset().getName()); + layerElement.setAttribute( + "workspace", + layer.getWorkspace().getPathName()); + + } + else if(layer.getWorkspace().getType() == 2) { + IPropertySet set = layer.getWorkspace().getConnectionProperties(); + Object names[] = new Object[set.getCount()]; + Object prop[] = new Object[set.getCount()]; + set.getAllProperties(names, prop); + layerElement.setAttribute("connection_type", "SDE"); + for(int i = 0; i < names.length; i++) { + if(names[i] != null) { + String[] prop_names = (String[])names[i]; + for(int j = 0; j < prop_names.length; j++) { + layerElement.setAttribute( + prop_names[j].toLowerCase(), + set.getProperty(prop_names[j]).toString()); + } + } + } + try { + layerElement.setAttribute( + "join_table", + layer.getRelationshipClass() + .getOriginClass().getAliasName()); + layerElement.setAttribute( + "join_field", + layer.getRelationshipClass().getOriginPrimaryKey()); + layerElement.setAttribute( + "join_table_target", + layer.getRelationshipClass() + .getDestinationClass().getAliasName()); + layerElement.setAttribute( + "join_field_target", + layer.getRelationshipClass().getOriginForeignKey()); + } + catch(AutomationException ioe) { + //Do nothing, cause no jointable defined. + } + catch(IOException ae) { + //Do nothing, cause no jointable defined. + } + catch(NullPointerException npe) { + //Do nothing, cause no jointable defined. + } + } + } + catch(Exception e) { + logger.error( + "Could not read layer datasource." + + " Stopped reading layer " + layer.getName() + "."); + util.removeLayer(layerElement); + return null; + } + return layerElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/FillSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/FillSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,154 @@ +package de.intevation.mxd.reader; + +import java.lang.Exception; + +import org.w3c.dom.Element; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IFillSymbol; +import com.esri.arcgis.display.MultiLayerFillSymbol; +import com.esri.arcgis.display.SimpleFillSymbol; +import com.esri.arcgis.display.MarkerFillSymbol; +import com.esri.arcgis.display.LineFillSymbol; + +/** + * Wrapper for fill symbol reader. + * + * @author Raimund Renkert + */ +public class FillSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(FillSymbolReader.class); + + private ISymbol symbol; + private IFillSymbol fillSymbol; + + public FillSymbolReader() throws Exception{ + logger.debug("contructor()"); + this.symbol = null; + this.fillSymbol = null; + } + + public FillSymbolReader(ISymbol symbol) throws Exception{ + logger.debug("contructor(ISymbol)"); + this.symbol = symbol; + this.fillSymbol = null; + } + + public FillSymbolReader(IFillSymbol symbol) throws Exception{ + logger.debug("contructor(ILineSymbol)"); + this.fillSymbol = symbol; + this.symbol= null; + } + + public Element read() { + ISymbolReader sreader = null; + if(symbol != null) { + try { + if(symbol instanceof SimpleFillSymbol) { + sreader = new SimpleFillSymbolReader(symbol); + } + else if(symbol instanceof MultiLayerFillSymbol) { + sreader = new MultiLayerFillSymbolReader(symbol); + } + else if(symbol instanceof MarkerFillSymbol) { + sreader = new MarkerFillSymbolReader(symbol); + } + else if(symbol instanceof LineFillSymbol) { + sreader = new LineFillSymbolReader(symbol); + } + else { + logger.debug("The reader for type " + symbol.getClass().toString() + + " is not implemented!"); + return parent; + } + } + catch(Exception e) { + logger.error( + "Could not read the symbol " + + symbol.getClass().toString()); + return parent; + } + } + else if(fillSymbol != null) { + try { + if(fillSymbol instanceof SimpleFillSymbol) { + sreader = new SimpleFillSymbolReader(fillSymbol); + } + else if(fillSymbol instanceof MultiLayerFillSymbol) { + sreader = new MultiLayerFillSymbolReader(fillSymbol); + } + else if(fillSymbol instanceof MarkerFillSymbol) { + sreader = new MarkerFillSymbolReader(fillSymbol); + } + else if(fillSymbol instanceof LineFillSymbol) { + sreader = new LineFillSymbolReader(fillSymbol); + } + else { + logger.debug("The reader for type " + + fillSymbol.getClass().toString() + + " is not implemented!"); + return parent; + } + } + catch(Exception e) { + logger.error( + "Could not read the symbol " + + symbol.getClass().toString()); + return parent; + } + } + else { + return parent; + } + if (sreader != null) { + sreader.setParent(parent); + sreader.setUtil(util); + sreader.read(); + } + return parent; + } + + public void setSymbol(ISymbol sym) { + this.symbol = sym; + this.fillSymbol = null; + } + + public void setSymbol(IFillSymbol sym) { + this.symbol = null; + this.fillSymbol = sym; + } + + public boolean canRead(ISymbol sym) { + if(sym instanceof SimpleFillSymbol || + sym instanceof MarkerFillSymbol || + sym instanceof MultiLayerFillSymbol || + sym instanceof LineFillSymbol) { + return true; + } + else { + return false; + } + } + + public boolean canRead(IFillSymbol sym) { + if(sym instanceof SimpleFillSymbol || + sym instanceof MarkerFillSymbol || + sym instanceof MultiLayerFillSymbol || + sym instanceof LineFillSymbol) { + return true; + } + else { + return false; + } + } + +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,125 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.carto.ILayer; +import com.esri.arcgis.carto.GdbRasterCatalogLayer; + +import org.w3c.dom.Element; +import java.io.IOException; +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * Reads Layer information. + * + * @author Raimund Renkert + */ +public class GdbRasterCatalogLayerReader +implements ILayerReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(GdbRasterCatalogLayerReader.class); + + /** + * Privte member. + */ + private GdbRasterCatalogLayer layer; + private MapToXMLUtils util; + + + public GdbRasterCatalogLayerReader(ILayer layer) + throws Exception { + if(layer instanceof GdbRasterCatalogLayer) { + this.layer = (GdbRasterCatalogLayer)layer; + } + else { + throw new Exception("Not an instance of GdbRastaCatalogLayer: " + + layer.getClass().toString()); + } + } + + /** + * Setter for XML document helper. + * + * @param util The helper for storing map information. + */ + public void setUtil(MapToXMLUtils util) { + this.util = util; + } + + /** + * Reads the Layer content. + * + * @return The layer XML element. + */ + public Element read() + throws IOException { + logger.debug("read()"); + + Element layerElement; + try { + layerElement = util.addLayer(); + } + catch(Exception e) { + logger.error( + "Could not create DOM element for layer." + + "Stopped reading layer."); + throw new IOException( + this.getClass().toString() + + "Error creating dom element"); + } + + try { + layerElement.setAttribute("name", layer.getName()); + } + catch(IOException ioe) { + logger.warn("Could not read layer name. Stopped reading layer."); + throw new IOException("Error reading layer name."); + } + + try { + layerElement.setAttribute("min_scale", + String.valueOf(layer.getMinimumScale())); + } + catch(IOException ioe) { + logger.warn("Could not read minimum layer scale."); + } + + try { + layerElement.setAttribute("max_scale", + String.valueOf(layer.getMaximumScale())); + } + catch(IOException ioe) { + logger.warn("Could not read maximum layer scale."); + } + + try { + if(layer.isVisible()) { + layerElement.setAttribute("status", "on"); + } + else { + layerElement.setAttribute("status", "off"); + } + } + catch(IOException ioe) { + logger.warn( + "Could not read layer status." + + " Setting layer status to \"on\""); + layerElement.setAttribute("status", "on"); + } + + try { + layerElement.setAttribute("definition_query", + layer.getDefinitionExpression()); + } + catch(IOException ioe) { + logger.warn( + "Could not read layer definition query."); + } + return layerElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/HashLineSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/HashLineSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,201 @@ +package de.intevation.mxd.reader; + +import java.awt.Color; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.ILineSymbol; +import com.esri.arcgis.display.HashLineSymbol; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; + +import com.esri.arcgis.display.esriLineCapStyle; +import com.esri.arcgis.display.esriLineJoinStyle; + +import org.w3c.dom.Element; +import java.io.IOException; + +/** + * Reads cartoline symbol information. + * + * @author Raimund Renkert + */ +public class HashLineSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(HashLineSymbolReader.class); + + /** + * Private member. + */ + private HashLineSymbol symbol; + + public HashLineSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof HashLineSymbol) { + this.symbol = (HashLineSymbol)symbol; + } + else { + throw new Exception("Not a HashLineSymbol!"); + } + } + + public HashLineSymbolReader(ILineSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof HashLineSymbol) { + this.symbol = (HashLineSymbol)symbol; + } + else { + throw new Exception("Not a HashLineSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + Element symbolElement = util.addSymbol(parent); + + try { + symbolElement.setAttribute("name", symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\"."); + symbolElement.setAttribute("name", "default"); + } + + try { + if(symbol.getColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + } + } + catch(IOException ioe) { + logger.warn("Could not read color."); + } + + int cap; + try { + cap = symbol.getCap(); + } + catch(IOException ioe) { + logger.warn("Could not read line cap."); + cap = -1; + } + String capStyle = ""; + switch(cap) { + case esriLineCapStyle.esriLCSRound: capStyle = "round"; break; + case esriLineCapStyle.esriLCSSquare: capStyle = "square"; break; + default: break; + } + + int join; + try { + join = symbol.getJoin(); + } + catch(IOException ioe) { + logger.warn("Could not read line join."); + join = -1; + } + String joinStyle = ""; + switch(join) { + case esriLineJoinStyle.esriLJSRound: joinStyle = "round"; break; + case esriLineJoinStyle.esriLJSMitre: joinStyle = "miter"; break; + default: break; + } + if(!capStyle.equals("")) { + symbolElement.setAttribute("cap", capStyle); + } + if(!joinStyle.equals("")) { + symbolElement.setAttribute("join", joinStyle); + } + + try { + symbolElement.setAttribute( + "linestart", + String.valueOf(symbol.getLineStartOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read line start offset."); + } + + try { + symbolElement.setAttribute( + "miterlimit", + String.valueOf(symbol.getMiterLimit())); + } + catch(IOException ioe) { + logger.warn("Could not read miter limit."); + } + + try { + symbolElement.setAttribute( + "offset", + String.valueOf(symbol.getOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read offset."); + } + + try { + symbolElement.setAttribute( + "width", + String.valueOf(symbol.getWidth())); + } + catch(IOException ioe) { + logger.warn("Could not read width."); + } + + try { + ILineSymbol ls = symbol.getHashSymbol(); + readHashSymbol(ls, symbolElement); + } + catch(Exception e) { + logger.warn( + "Could not read HashSymbol." + + " No fallback symbol defined."); + } + + //TODO Read further HashLine specific attributes: + // LineDecoration, Template. + symbolElement.setAttribute("type", "line"); + symbolElement.setAttribute("style", "hash"); + + return symbolElement; + } + + private void readHashSymbol(ILineSymbol ls, Element parent) + throws Exception { + LineSymbolReader lsr = new LineSymbolReader (); + if (lsr.canRead(ls)) { + lsr.setSymbol(ls); + lsr.setParent(parent); + lsr.setUtil(util); + lsr.read(); + } + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/IClassReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/IClassReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,18 @@ +package de.intevation.mxd.reader; + +import java.io.IOException; + +import org.w3c.dom.Node; +/** + * The interface to the class reader. + * + * @author Raimund Renkert + */ +public interface IClassReader{ + + boolean read() throws IOException; + void getClassDoc() throws IOException; + void setXMLNode(Node node); + +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/ILayerReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/ILayerReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,19 @@ +package de.intevation.mxd.reader; + +import org.w3c.dom.Element; +import java.io.IOException; + +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * The interface to the layer reader. + * + * @author Raimund Renkert + */ +public interface ILayerReader{ + + void setUtil(MapToXMLUtils util); + Element read() throws IOException; + +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/IReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/IReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,38 @@ +package de.intevation.mxd.reader; + +import java.io.IOException; + +import org.w3c.dom.Document; + +/** + * The interface to the MXD-Reader. + * + * @author Raimund Renkert + */ +public interface IReader { + /** + * Initializes the reader component. + */ + boolean init() throws IOException; + + /** + * Method to perform actions at the of reader usage. + */ + boolean shutdown() throws IOException; + + /** + * Set the filename. + */ + void setFilename(String name); + + /** + * Read the content. + */ + boolean read() throws Exception; + + /** + * Request DOM Document containing the map data. + */ + Document getMapDocument(); +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/IRendererReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/IRendererReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,22 @@ +package de.intevation.mxd.reader; + +import java.lang.Exception; + +import org.w3c.dom.Element; + +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * The interface to the renderer reader. + * + * @author Raimund Renkert + */ +public interface IRendererReader{ + + Element read(); + + void setParent(Element parent); + void setUtil(MapToXMLUtils util); + +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/ISymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/ISymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,21 @@ +package de.intevation.mxd.reader; + +import java.lang.Exception; + +import org.w3c.dom.Element; + +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * The interface to the symbol reader. + * + * @author Raimund Renkert + */ +public interface ISymbolReader{ + + Element read(); + + void setParent(Element parent); + void setUtil(MapToXMLUtils util); +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/LineFillSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/LineFillSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,171 @@ +package de.intevation.mxd.reader; + +import java.awt.Color; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IFillSymbol; +import com.esri.arcgis.display.ILineSymbol; +import com.esri.arcgis.display.LineFillSymbol; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; + +import org.w3c.dom.Element; +import java.io.IOException; + +/** + * Reads marker line symbol information. + * + * @author Raimund Renkert + */ +public class LineFillSymbolReader +extends AbstractSymbolReader{ + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(LineFillSymbolReader.class); + + /** + * Private member. + */ + private LineFillSymbol symbol; + + public LineFillSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof LineFillSymbol) { + this.symbol = (LineFillSymbol)symbol; + } + else { + throw new Exception("Not a LineFillSymbol!"); + } + } + + + public LineFillSymbolReader(IFillSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof LineFillSymbol) { + this.symbol = (LineFillSymbol)symbol; + } + else { + throw new Exception("Not a LineFillSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + + Element symbolElement = util.addSymbol(parent); + + try { + symbolElement.setAttribute("name", symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\"."); + symbolElement.setAttribute("name", "default"); + } + symbolElement.setAttribute("style", "fill"); + + try { + symbolElement.setAttribute( + "offset", + String.valueOf(symbol.getOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read offset."); + } + + try { + symbolElement.setAttribute( + "separation", + String.valueOf(symbol.getSeparation())); + } + catch(IOException ioe) { + logger.warn("Could not read separation."); + } + + try { + symbolElement.setAttribute( + "angle", + String.valueOf(symbol.getAngle())); + } + catch(IOException e) { + logger.warn("Could not read angle."); + } + + try { + if(symbol.getColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(color.getTransparency())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(col.getTransparency())); + } + } + catch(IOException ioe) { + logger.warn("Could not read color."); + } + + try { + ILineSymbol ols = symbol.getOutline(); + LineSymbolReader olsr = new LineSymbolReader(); + if(olsr.canRead(ols)) { + olsr.setSymbol(ols); + olsr.setUtil(util); + olsr.setParent(symbolElement); + olsr.read(); + } + else { + logger.debug("The type of " + ols.getClass().toString() + + " is not implemented!"); + } + } + catch(Exception e) { + logger.warn("Could not read outline."); + } + + try { + ILineSymbol ls = symbol.getLineSymbol(); + LineSymbolReader lsr = new LineSymbolReader(); + if(lsr.canRead(ls)) { + symbolElement.setAttribute("hatch", "1"); + lsr.setSymbol(ls); + lsr.setUtil(util); + lsr.setParent(symbolElement); + lsr.read(); + } + else { + logger.debug("The type of " + ls.getClass().toString() + + " is not implemented!"); + } + } + catch(Exception e) { + logger.warn("Could not read line symbol."); + } + return parent; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/LineSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/LineSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,171 @@ +package de.intevation.mxd.reader; + +import java.lang.Exception; + +import org.w3c.dom.Element; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.ILineSymbol; +import com.esri.arcgis.display.MultiLayerLineSymbol; +import com.esri.arcgis.display.SimpleLineSymbol; +import com.esri.arcgis.display.MarkerLineSymbol; +import com.esri.arcgis.display.PictureLineSymbol; +import com.esri.arcgis.display.CartographicLineSymbol; +import com.esri.arcgis.display.HashLineSymbol; + +/** + * Wrapper for line symbol reader. + * + * @author Raimund Renkert + */ +public class LineSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(LineSymbolReader.class); + + private ISymbol symbol; + private ILineSymbol lineSymbol; + + public LineSymbolReader() throws Exception{ + logger.debug("contructor()"); + this.symbol = null; + this.lineSymbol = null; + } + + public LineSymbolReader(ISymbol symbol) throws Exception{ + logger.debug("contructor(ISymbol)"); + this.symbol = symbol; + this.lineSymbol = null; + } + + public LineSymbolReader(ILineSymbol symbol) throws Exception{ + logger.debug("contructor(ILineSymbol)"); + this.lineSymbol = symbol; + this.symbol= null; + } + + public Element read() { + ISymbolReader sreader = null; + if(symbol != null) { + try { + if(symbol instanceof SimpleLineSymbol) { + sreader = new SimpleLineSymbolReader(symbol); + } + else if(symbol instanceof MarkerLineSymbol) { + sreader = new MarkerLineSymbolReader(symbol); + } + else if(symbol instanceof PictureLineSymbol) { + sreader = new PictureLineSymbolReader(symbol); + } + else if(symbol instanceof MultiLayerLineSymbol) { + sreader = new MultiLayerLineSymbolReader(symbol); + } + else if(symbol instanceof CartographicLineSymbol) { + sreader = new CartoLineSymbolReader(symbol); + } + else if(symbol instanceof HashLineSymbol) { + sreader = new HashLineSymbolReader(symbol); + } + else { + logger.debug("The reader for type " + symbol.getClass().toString() + + " is not implemented!"); + return parent; + } + } + catch(Exception e) { + logger.error( + "Could not read the symbol " + + symbol.getClass().toString()); + return parent; + } + } + else if(lineSymbol != null) { + try { + if(lineSymbol instanceof SimpleLineSymbol) { + sreader = new SimpleLineSymbolReader(lineSymbol); + } + else if(lineSymbol instanceof MarkerLineSymbol) { + sreader = new MarkerLineSymbolReader(lineSymbol); + } + else if(lineSymbol instanceof PictureLineSymbol) { + sreader = new PictureLineSymbolReader(lineSymbol); + } + else if(lineSymbol instanceof MultiLayerLineSymbol) { + sreader = new MultiLayerLineSymbolReader(lineSymbol); + } + else if(lineSymbol instanceof CartographicLineSymbol) { + sreader = new CartoLineSymbolReader(lineSymbol); + } + else if(lineSymbol instanceof HashLineSymbol) { + sreader = new HashLineSymbolReader(lineSymbol); + } + else { + logger.debug("The reader for type " + + lineSymbol.getClass().toString() + + " is not implemented!"); + return parent; + } + } + catch(Exception e) { + logger.error( + "Could not read the symbol " + + symbol.getClass().toString()); + return parent; + } + } + else { + return parent; + } + if (sreader != null) { + sreader.setParent(parent); + sreader.setUtil(util); + sreader.read(); + } + return parent; + } + + public void setSymbol(ISymbol sym) { + this.symbol = sym; + this.lineSymbol = null; + } + + public void setSymbol(ILineSymbol sym) { + this.lineSymbol = sym; + this.symbol = null; + } + + public boolean canRead(ISymbol sym) { + if(sym instanceof SimpleLineSymbol || + sym instanceof MarkerLineSymbol || + sym instanceof PictureLineSymbol || + sym instanceof MultiLayerLineSymbol || + sym instanceof CartographicLineSymbol || + sym instanceof HashLineSymbol) { + return true; + } + else { + return false; + } + } + + public boolean canRead(ILineSymbol sym) { + if(sym instanceof SimpleLineSymbol || + sym instanceof MarkerLineSymbol || + sym instanceof PictureLineSymbol || + sym instanceof MultiLayerLineSymbol || + sym instanceof CartographicLineSymbol || + sym instanceof HashLineSymbol) { + return true; + } + else { + return false; + } + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/MXDReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/MXDReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,215 @@ +package de.intevation.mxd.reader; + +import java.io.IOException; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.carto.ILayer; +import com.esri.arcgis.carto.IMap; +import com.esri.arcgis.carto.MapDocument; +import com.esri.arcgis.carto.FeatureLayer; +import com.esri.arcgis.carto.GdbRasterCatalogLayer; +import com.esri.arcgis.carto.IFeatureRenderer; +import com.esri.arcgis.carto.SimpleRenderer; +import com.esri.arcgis.carto.ClassBreaksRenderer; +import com.esri.arcgis.carto.UniqueValueRenderer; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import de.intevation.mxd.ArcGISInitializer; +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * The MXD file reader. + * + * @author Raimund Renkert + */ +public class MXDReader +implements IReader { + /** + * The Logger. + */ + private static final Logger logger = Logger.getLogger(MXDReader.class); + + /** + * Private member. + */ + private String filename = ""; + private ArcGISInitializer initializer = null; + private MapToXMLUtils util; + private IMap map; + private int invalidLayerCount; + + public MXDReader() + throws IOException { + logger.debug("constructor()"); + initializer = new ArcGISInitializer(); + util = new MapToXMLUtils(); + invalidLayerCount = 0; + } + + + /** + * Initialize the ArcGIS Objects. + */ + public boolean init() + throws IOException { + logger.debug("init()"); + if(!initializer.initArcGIS()) { + return false; + } + if(!initializer.initArcGISLicenses()) { + return false; + } + return true; + } + + /** + * Shutdown the ArcGIS Objects. + */ + public boolean shutdown() + throws IOException { + logger.debug("shutdown()"); + if(initializer == null) { + throw new IOException("Faild to shutdown!"); + } + else { + initializer.shutdownArcGIS(); + return true; + } + } + + /** + * Set the path and filename to the MXD-File. + */ + public void setFilename(String name) { + logger.debug("setFilename()"); + filename = name; + } + + + private void openMapDocument() + throws IOException { + MapDocument m = new MapDocument(); + if(!m.isMapDocument(filename)) { + throw new IOException(filename + " is not a map!"); + } + m.open(filename, null); + map = m.getMap(0); + } + + /** + * Read the MXD file content. + */ + public boolean read() + throws Exception { + logger.debug("read()"); + if(filename == "") { + throw new IOException("Please set filename!"); + } + else { + util.addFilename(filename); + openMapDocument(); + MapReader mreader; + try { + mreader = new MapReader (map); + mreader.setUtil(util); + mreader.read(); + + } + catch(Exception e) { + throw e; + } + + for(int i = 0; i < map.getLayerCount();i++) { + ILayer layer = map.getLayer(i); + try { + if (layer instanceof FeatureLayer) { + FeatureLayerReader lr = new FeatureLayerReader(layer); + lr.setUtil(util); + Element layerElement = lr.read(); + if (layerElement == null) { + continue; + } + IFeatureRenderer renderer = + ((FeatureLayer)layer).getRenderer(); + IRendererReader rreader; + if(renderer instanceof SimpleRenderer) { + rreader = new SimpleRendererReader(renderer); + rreader.setParent(layerElement); + rreader.setUtil(util); + rreader.read(); + } + else if(renderer instanceof ClassBreaksRenderer) { + rreader = new ClassBreakRendererReader(renderer); + rreader.setParent(layerElement); + rreader.setUtil(util); + rreader.read(); + } + else if(renderer instanceof UniqueValueRenderer) { + rreader = new UniqueValueRendererReader(renderer); + rreader.setParent(layerElement); + rreader.setUtil(util); + rreader.read(); + } + else{ + logger.debug("Not a known renderer type " + + renderer.getClass().toString()); + } + } + else if(layer instanceof GdbRasterCatalogLayer) { + GdbRasterCatalogLayerReader gclr = + new GdbRasterCatalogLayerReader(layer); + gclr.setUtil(util); + Element layerElement = gclr.read(); + IFeatureRenderer renderer = + ((GdbRasterCatalogLayer)layer).getRenderer(); + IRendererReader rreader; + if(renderer instanceof SimpleRenderer) { + rreader = new SimpleRendererReader(renderer); + rreader.setParent(layerElement); + rreader.setUtil(util); + rreader.read(); + } + else if(renderer instanceof ClassBreaksRenderer) { + rreader = new ClassBreakRendererReader(renderer); + rreader.setParent(layerElement); + rreader.setUtil(util); + rreader.read(); + } + else if(renderer instanceof UniqueValueRenderer) { + rreader = new UniqueValueRendererReader(renderer); + rreader.setParent(layerElement); + rreader.setUtil(util); + rreader.read(); + } + else { + logger.debug("Not a known renderer type " + + renderer.getClass().toString()); + } + } + } + catch(Exception e) { + invalidLayerCount++; + if(i == 0 && (i + 1) == map.getLayerCount() || + invalidLayerCount == map.getLayerCount()) { + throw new IOException( + "No valid layer in MXD file." + + " Aborting."); + } + } + } + } + return true; + } + + /** + * Get the root DOM document. + */ + public Document getMapDocument() { + logger.debug("getMapDocument()"); + return util.getDocument(); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/MapReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/MapReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,197 @@ +package de.intevation.mxd.reader; + +import java.io.IOException; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.carto.IMap; +import com.esri.arcgis.carto.Map; +import com.esri.arcgis.geometry.ISpatialReference; +import com.esri.arcgis.geometry.ProjectedCoordinateSystem; +import com.esri.arcgis.geometry.GeographicCoordinateSystem; +import com.esri.arcgis.geometry.UnknownCoordinateSystem; +import com.esri.arcgis.geometry.Projection; +import com.esri.arcgis.geometry.IEnvelope; + +import org.w3c.dom.Element; + +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * Reads map information. + * + * @author Raimund Renkert + */ +public class MapReader { + /** + * The Logger. + */ + private static final Logger logger = Logger.getLogger(MapReader.class); + + /** + * Private member. + */ + private Map map; + private MapToXMLUtils util; + + + public MapReader(IMap map) + throws Exception { + logger.debug("constructor()"); + if(map instanceof Map) { + this.map = (Map)map; + } + else { + throw new Exception("Not an instance of \"Map\"!"); + } + } + + /** + * Reads the Map attributes. + */ + public void read() + throws IOException { + logger.debug("read()"); + if(util == null) { + throw new IOException("Can not write to document."); + } + + //Create XML Element for map. + Element mapElement; + try{ + mapElement = util.createMap(); + } + catch(Exception e){ + logger.error("Could not create DOM element. Aborting."); + throw new IOException("Error creating DOM element."); + } + + //Read map name. + try { + mapElement.setAttribute("name", map.getName()); + } + catch(IOException ioe) { + logger.warn( + "Could not read map name." + + " Setting map name to \"default-map\""); + mapElement.setAttribute("name", "default-map"); + } + + //Read map extent. + try { + IEnvelope ext = map.getExtent(); + mapElement.setAttribute( + "extent_max_x", + String.valueOf(ext.getXMax())); + mapElement.setAttribute( + "extent_max_y", + String.valueOf(ext.getYMax())); + mapElement.setAttribute( + "extent_min_x", + String.valueOf(ext.getXMin())); + mapElement.setAttribute( + "extent_min_y", + String.valueOf(ext.getYMin())); + } + catch(IOException ioe) { + logger.warn("Could not read map extend. Setting to 0, 0, 0, 0."); + mapElement.setAttribute("extend_max_x", "0"); + mapElement.setAttribute("extend_min_x", "0"); + mapElement.setAttribute("extend_max_y", "0"); + mapElement.setAttribute("extend_min_y", "0"); + } + + //Read map units. + int units = 0; + try { + units = map.getMapUnits(); + } + catch(IOException ioe) { + logger.warn( + "Could not read map units." + + " Setting map units to unknown."); + units = 0; + } + + String s_units; + switch(units) { + case 1: s_units = "inches"; break; + case 2: s_units = "points"; break; + case 3: s_units = "feet"; break; + case 4: s_units = "yards"; break; + case 5: s_units = "miles"; break; + case 6: s_units = "nauticalmiles"; break; + case 7: s_units = "millimeters"; break; + case 8: s_units = "centimeters"; break; + case 9: s_units = "meters"; break; + case 10: s_units = "kilometers"; break; + case 11: s_units = "degree"; break; + case 12: s_units = "decimeters"; break; + case 13: s_units = "units_last"; break; + default : s_units = "unknown"; break; + } + mapElement.setAttribute("units", s_units); + + if(units == 0) { + logger.warn( + "Unknown units." + + " Please edit units in resulting mapfile."); + } + + //TODO: Find out whats the correct scale value. + try { + mapElement.setAttribute( + "scale", + String.valueOf(map.getMaxScale())); + } + catch(IOException ioe) { + logger.warn("Could not read map scale. Setting map scale to 1000"); + mapElement.setAttribute("scale", "1000"); + } + + //Read the projection. + try { + ISpatialReference sr = map.getSpatialReference(); + String projection = ""; + if(sr instanceof ProjectedCoordinateSystem) { + ProjectedCoordinateSystem pcs = (ProjectedCoordinateSystem)sr; + Projection p = (Projection)pcs.getProjection(); + projection = p.getName(); + } + else if(sr instanceof GeographicCoordinateSystem) { + GeographicCoordinateSystem gcs = (GeographicCoordinateSystem)sr; + projection = gcs.getName(); + } + else if(sr instanceof UnknownCoordinateSystem) { + UnknownCoordinateSystem ucs = (UnknownCoordinateSystem)sr; + projection = ucs.getName(); + } + else{ + logger.debug( + "Unknown SpatialReference: " + + sr.getClass().toString()); + } + + if(projection.equals("Unknown")) { + logger.warn( + "Unknown projection." + + " Please edit projection in resulting mapfile."); + } + mapElement.setAttribute("projection", projection); + } + catch(IOException ioe) { + logger.warn( + "Could not read map projection." + + " Setting map projection to unknown."); + mapElement.setAttribute("projection", "Unknown"); + } + } + + /** + * Set the utilities. + */ + public void setUtil(MapToXMLUtils util) { + this.util = util; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/MarkerFillSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/MarkerFillSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,209 @@ +package de.intevation.mxd.reader; + +import java.awt.Color; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IFillSymbol; +import com.esri.arcgis.display.ILineSymbol; +import com.esri.arcgis.display.IMarkerSymbol; +import com.esri.arcgis.display.MarkerFillSymbol; +import com.esri.arcgis.display.esriSimpleFillStyle; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; + +import org.w3c.dom.Element; +import java.io.IOException; + +/** + * Reads marker line symbol information. + * + * @author Raimund Renkert + */ +public class MarkerFillSymbolReader +extends AbstractSymbolReader{ + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(MarkerFillSymbolReader.class); + + /** + * Private member. + */ + private MarkerFillSymbol symbol; + + public MarkerFillSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MarkerFillSymbol) { + this.symbol = (MarkerFillSymbol)symbol; + } + else { + throw new Exception("Not a MarkerFillSymbol!"); + } + } + + + public MarkerFillSymbolReader(IFillSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MarkerFillSymbol) { + this.symbol = (MarkerFillSymbol)symbol; + } + else { + throw new Exception("Not a MarkerFillSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + + Element symbolElement = util.addSymbol(parent); + + try { + symbolElement.setAttribute("name", symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\"."); + symbolElement.setAttribute("name", "default"); + } + symbolElement.setAttribute("style", "fill"); + + try { + symbolElement.setAttribute( + "xoffset", + String.valueOf(symbol.getXOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read x-offset."); + } + + try { + symbolElement.setAttribute( + "yoffset", + String.valueOf(symbol.getYOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read y-offset."); + } + + try { + symbolElement.setAttribute( + "xseparation", + String.valueOf(symbol.getXSeparation())); + } + catch(IOException ioe) { + logger.warn("Could not read x-separation."); + } + + try { + symbolElement.setAttribute( + "yseparation", + String.valueOf(symbol.getYSeparation())); + } + catch(IOException ioe) { + logger.warn( + "Could not read y-separation."); + } + + int style; + try { + style = symbol.getStyle(); + } + catch(IOException ioe) { + logger.warn("Could not read style."); + style = -1; + } + switch(style) { + case esriSimpleFillStyle.esriSFSCross: + symbolElement.setAttribute("fillstyle", "cross"); break; + case esriSimpleFillStyle.esriSFSSolid: + symbolElement.setAttribute("fillstyle", "solid"); break; + case esriSimpleFillStyle.esriSFSVertical: + symbolElement.setAttribute("fillstyle", "vertical"); break; + case esriSimpleFillStyle.esriSFSHorizontal: + symbolElement.setAttribute("fillstyle", "horizontal"); break; + case esriSimpleFillStyle.esriSFSForwardDiagonal: + symbolElement.setAttribute("fillstyle", "fwdiagonal"); break; + case esriSimpleFillStyle.esriSFSBackwardDiagonal: + symbolElement.setAttribute("fillstyle", "bwdiagonal"); break; + case esriSimpleFillStyle.esriSFSDiagonalCross: + symbolElement.setAttribute("fillstyle", "diagonalcross"); + break; + default: break; + } + + try { + if(symbol.getColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(color.getTransparency())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(col.getTransparency())); + } + } + catch(IOException ioe) { + logger.warn("Could not read color."); + } + + try { + ILineSymbol ls = symbol.getOutline(); + LineSymbolReader lsr = new LineSymbolReader(); + if(lsr.canRead(ls)) { + lsr.setSymbol(ls); + lsr.setUtil(util); + lsr.setParent(symbolElement); + lsr.read(); + } + else { + logger.debug("The type of " + ls.getClass().toString() + + " is not implemented!"); + } + } + catch(Exception e) { + logger.warn("Could not read outline."); + } + + try { + IMarkerSymbol sym = symbol.getMarkerSymbol(); + MarkerSymbolReader msr = new MarkerSymbolReader(); + if(msr.canRead(sym)) { + msr.setSymbol(sym); + msr.setParent(symbolElement); + msr.setUtil(util); + msr.read(); + } + else { + logger.debug("The type of " + sym.getClass().toString() + + " is not implemented!"); + } + } + catch(Exception e) { + logger.warn("Could not read marker symbol."); + } + return parent; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/MarkerLineSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,82 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.ILineSymbol; +import com.esri.arcgis.display.IMarkerSymbol; +import com.esri.arcgis.display.MarkerLineSymbol; +import com.esri.arcgis.display.MultiLayerMarkerSymbol; + +import org.w3c.dom.Element; + +/** + * Reads marker line symbol information. + * + * @author Raimund Renkert + */ +public class MarkerLineSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(MarkerLineSymbolReader.class); + + /** + * Private member. + */ + private MarkerLineSymbol symbol; + + public MarkerLineSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MarkerLineSymbol) { + this.symbol = (MarkerLineSymbol)symbol; + } + else { + throw new Exception("Not a MarkerLineSymbol!"); + } + } + + public MarkerLineSymbolReader(ILineSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MarkerLineSymbol) { + this.symbol = (MarkerLineSymbol)symbol; + } + else { + throw new Exception("Not a MarkerLineSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + try { + IMarkerSymbol sym = symbol.getMarkerSymbol(); + if(sym instanceof MultiLayerMarkerSymbol) { + ISymbolReader sreader = new MultiLayerMarkerSymbolReader(sym); + sreader.setParent(parent); + sreader.setUtil(util); + sreader.read(); + } + else { + logger.debug("The type of " + sym.getClass().toString() + + " is not implemented!"); + } + } + catch(Exception e) { + logger.error( + "Could not read the symbol " + + symbol.getClass().toString()); + } + return parent; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/MarkerSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/MarkerSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,164 @@ +package de.intevation.mxd.reader; + +import java.lang.Exception; + +import org.w3c.dom.Element; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IMarkerSymbol; +import com.esri.arcgis.display.SimpleMarkerSymbol; +import com.esri.arcgis.display.ArrowMarkerSymbol; +import com.esri.arcgis.display.CharacterMarkerSymbol; +import com.esri.arcgis.display.PictureMarkerSymbol; +import com.esri.arcgis.display.MultiLayerMarkerSymbol; + +/** + * Wrapper for marker symbol reader. + * + * @author Raimund Renkert + */ +public class MarkerSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(MarkerSymbolReader.class); + + private ISymbol symbol; + private IMarkerSymbol markerSymbol; + + public MarkerSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor(ISymbol)"); + this.symbol = symbol; + this.markerSymbol = null; + } + + public MarkerSymbolReader(IMarkerSymbol symbol) + throws Exception { + logger.debug("contructor(ISymbol)"); + this.markerSymbol = symbol; + this.symbol = null; + } + + public MarkerSymbolReader() { + logger.debug("contructor()"); + this.symbol = null; + this.markerSymbol = null; + } + + public Element read() { + logger.debug("read()"); + ISymbolReader sreader = null; + + if(symbol != null) { + try { + if(symbol instanceof SimpleMarkerSymbol) { + sreader = new SimpleMarkerSymbolReader(symbol); + } + else if(symbol instanceof ArrowMarkerSymbol) { + sreader = new ArrowMarkerSymbolReader(symbol); + } + else if(symbol instanceof CharacterMarkerSymbol) { + sreader = new CharacterMarkerSymbolReader(symbol); + } + else if(symbol instanceof PictureMarkerSymbol) { + sreader = new PictureMarkerSymbolReader(symbol); + } + else if(symbol instanceof MultiLayerMarkerSymbol) { + sreader = new MultiLayerMarkerSymbolReader(symbol); + } + else { + logger.debug("The reader for type " + symbol.getClass().toString() + + " is not implemented!"); + return parent; + } + } + catch(Exception e) { + logger.error( + "Could not read the symbol " + + symbol.getClass().toString()); + return parent; + + } + } + else if(markerSymbol != null) { + try { + if(markerSymbol instanceof SimpleMarkerSymbol) { + sreader = new SimpleMarkerSymbolReader(markerSymbol); + } + else if(markerSymbol instanceof ArrowMarkerSymbol) { + sreader = new ArrowMarkerSymbolReader(markerSymbol); + } + else if(markerSymbol instanceof CharacterMarkerSymbol) { + sreader = new CharacterMarkerSymbolReader(markerSymbol); + } + else if(markerSymbol instanceof PictureMarkerSymbol) { + sreader = new PictureMarkerSymbolReader(markerSymbol); + } + else if(markerSymbol instanceof MultiLayerMarkerSymbol) { + sreader = new MultiLayerMarkerSymbolReader(markerSymbol); + } + else { + logger.debug("The reader for type " + symbol.getClass().toString() + + " is not implemented!"); + return parent; + } + } + catch(Exception e) { + logger.error( + "Could not read the symbol " + + symbol.getClass().toString()); + return parent; + + } + } + if (sreader != null) { + sreader.setParent(parent); + sreader.setUtil(util); + sreader.read(); + } + return parent; + } + + public void setSymbol(ISymbol sym) { + this.symbol = sym; + this.markerSymbol = null; + } + + public void setSymbol(IMarkerSymbol sym) { + this.markerSymbol = sym; + this.symbol = null; + } + + public boolean canRead(ISymbol sym) { + if(sym instanceof SimpleMarkerSymbol || + sym instanceof ArrowMarkerSymbol || + sym instanceof PictureMarkerSymbol || + sym instanceof CharacterMarkerSymbol || + sym instanceof MultiLayerMarkerSymbol) { + return true; + } + else { + return false; + } + } + + public boolean canRead(IMarkerSymbol sym) { + if(sym instanceof SimpleMarkerSymbol || + sym instanceof ArrowMarkerSymbol || + sym instanceof PictureMarkerSymbol || + sym instanceof CharacterMarkerSymbol || + sym instanceof MultiLayerMarkerSymbol) { + return true; + } + else { + return false; + } + } + +} diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/MultiLayerFillSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/MultiLayerFillSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,85 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IFillSymbol; +import com.esri.arcgis.display.MultiLayerFillSymbol; + +import org.w3c.dom.Element; + +/** + * Reads multi layer line symbol information. + * + * @author Raimund Renkert + */ +public class MultiLayerFillSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(MultiLayerFillSymbolReader.class); + + /** + * Private member. + */ + private MultiLayerFillSymbol symbol; + + public MultiLayerFillSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MultiLayerFillSymbol) { + this.symbol = (MultiLayerFillSymbol)symbol; + } + else { + throw new Exception("Not a MultiLayerFillSymbol!"); + } + } + + + public MultiLayerFillSymbolReader(IFillSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MultiLayerFillSymbol) { + this.symbol = (MultiLayerFillSymbol)symbol; + } + else { + throw new Exception("Not a MultiLayerFillSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + try { + for(int i = 0; i < symbol.getLayerCount(); i++) { + ISymbol sym = (ISymbol)symbol.getLayer(i); + + FillSymbolReader fsr = new FillSymbolReader(); + if(fsr.canRead(sym)) { + fsr.setSymbol(sym); + fsr.setParent(parent); + fsr.setUtil(util); + fsr.read(); + } + else { + logger.debug("The type of " + sym.getClass().toString() + + " is not implemented!"); + } + } + } + catch(Exception e) { + logger.error( + "Could not read the symbol " + + symbol.getClass().toString()); + } + return parent; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/MultiLayerLineSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,76 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.ILineSymbol; +import com.esri.arcgis.display.MultiLayerLineSymbol; + +import org.w3c.dom.Element; + +/** + * Reads multi layer line symbol information. + * + * @author Raimund Renkert + */ +public class MultiLayerLineSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(MultiLayerLineSymbolReader.class); + + /** + * Private member. + */ + private MultiLayerLineSymbol symbol; + + public MultiLayerLineSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MultiLayerLineSymbol) { + this.symbol = (MultiLayerLineSymbol)symbol; + } + else { + throw new Exception("Not a MultiLayerLineSymbol!"); + } + } + + public MultiLayerLineSymbolReader(ILineSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MultiLayerLineSymbol) { + this.symbol = (MultiLayerLineSymbol)symbol; + } + else { + throw new Exception("Not a MultiLayerLineSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + try { + for(int i = 0; i < symbol.getLayerCount(); i++) { + ISymbol sym = (ISymbol)symbol.getLayer(i); + ISymbolReader sreader = new LineSymbolReader(sym); + sreader.setParent(parent); + sreader.setUtil(util); + sreader.read(); + } + } + catch(Exception e) { + logger.error( + "Could not read the symbol " + + symbol.getClass().toString()); + } + return parent; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/MultiLayerMarkerSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,76 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IMarkerSymbol; +import com.esri.arcgis.display.MultiLayerMarkerSymbol; + +import org.w3c.dom.Element; + +/** + * Reads multi layer marker symbol information. + * + * @author Raimund Renkert + */ +public class MultiLayerMarkerSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(MultiLayerMarkerSymbolReader.class); + + /** + * Private member. + */ + private MultiLayerMarkerSymbol symbol; + + public MultiLayerMarkerSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MultiLayerMarkerSymbol) { + this.symbol = (MultiLayerMarkerSymbol)symbol; + } + else { + throw new Exception("Not a MultiLayerMarkerSymbol!"); + } + } + + public MultiLayerMarkerSymbolReader(IMarkerSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof MultiLayerMarkerSymbol) { + this.symbol = (MultiLayerMarkerSymbol)symbol; + } + else { + throw new Exception("Not a MultiLayerMarkerSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + try { + for(int i = 0; i < symbol.getLayerCount(); i++) { + ISymbol sym = (ISymbol)symbol.getLayer(i); + ISymbolReader sreader = new MarkerSymbolReader(sym); + sreader.setParent(parent); + sreader.setUtil(util); + sreader.read(); + } + } + catch(Exception e) { + logger.error( + "Could not read symbol " + + symbol.getClass().toString()); + } + return parent; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/PictureLineSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/PictureLineSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,143 @@ +package de.intevation.mxd.reader; + +import java.awt.Color; +import java.awt.Image; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.ILineSymbol; +import com.esri.arcgis.display.PictureLineSymbol; +import com.esri.arcgis.support.ms.stdole.Picture; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; + +import org.w3c.dom.Element; +import java.io.IOException; + +/** + * Reads picture line symbol information. + * + * @author Raimund Renkert + */ +public class PictureLineSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(SimpleLineSymbolReader.class); + + /** + * Private member. + */ + private PictureLineSymbol symbol; + + public PictureLineSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof PictureLineSymbol) { + this.symbol = (PictureLineSymbol)symbol; + } + else { + throw new Exception("Not a PictureLineSymbol!"); + } + } + + public PictureLineSymbolReader(ILineSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof PictureLineSymbol) { + this.symbol = (PictureLineSymbol)symbol; + } + else { + throw new Exception("Not a PictureLineSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + //TODO Read the picture from mxd and write it as base64 string to the + // XML Element. + logger.debug("read()"); + Element symbolElement = util.addSymbol(parent); + + try { + symbolElement.setAttribute("name", symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\""); + symbolElement.setAttribute("name", "default"); + } + + try { + if(symbol.getColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + } + } + catch(IOException ioe) { + logger.warn("Could not read color."); + } + + try { + symbolElement.setAttribute( + "offset", + String.valueOf(symbol.getOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read offset."); + } + + try { + symbolElement.setAttribute( + "x_scale", + String.valueOf(symbol.getXScale())); + } + catch(IOException ioe) { + logger.warn("Could not read x-scale."); + } + + try { + symbolElement.setAttribute( + "y_scale", + String.valueOf(symbol.getYScale())); + } + catch(IOException ioe) { + logger.warn("Could not read y-scale."); + } + + try { + symbolElement.setAttribute( + "width", + String.valueOf(symbol.getWidth())); + } + catch(IOException ioe) { + logger.warn("Could not read width."); + } + + symbolElement.setAttribute("type", "line"); + symbolElement.setAttribute("style", "picture"); + + return symbolElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/PictureMarkerSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,124 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IMarkerSymbol; +import com.esri.arcgis.display.PictureMarkerSymbol; +import com.esri.arcgis.carto.PictureElement; + +import org.w3c.dom.Element; +import java.io.IOException; + +/** + * Reads picture marker symbol information. + * + * @author Raimund Renkert + */ +public class PictureMarkerSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(PictureMarkerSymbolReader.class); + + /** + * Private member. + */ + private PictureMarkerSymbol symbol; + + public PictureMarkerSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof PictureMarkerSymbol) { + this.symbol = (PictureMarkerSymbol)symbol; + } + else { + throw new Exception("Not a PictureMarkerSymbol!"); + } + } + + public PictureMarkerSymbolReader(IMarkerSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof PictureMarkerSymbol) { + this.symbol = (PictureMarkerSymbol)symbol; + } + else { + throw new Exception("Not a PictureMarkerSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + //TODO Read the picture from mxd and write it as base64 string to the + // XML Element. + logger.debug("read()"); + Element symbolElement = util.addSymbol(parent); + + try { + symbolElement.setAttribute( + "angle", + String.valueOf(symbol.getAngle())); + } + catch(IOException ioe) { + logger.warn("Could not read angle."); + } + + try { + symbolElement.setAttribute( + "size", + String.valueOf(symbol.getSize())); + } + catch (IOException ioe) { + logger.warn("Could not read size. Setting size to 1."); + symbolElement.setAttribute("size", "1"); + } + + try { + symbolElement.setAttribute( + "x_offset", + String.valueOf(symbol.getXOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read x-offset."); + } + + try { + symbolElement.setAttribute( + "y_offset", + String.valueOf(symbol.getYOffset())); + } + catch(IOException ioe) { + logger.warn("Could not read y-offset."); + } + + try { + symbolElement.setAttribute( + "name", + symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\""); + symbolElement.setAttribute("name", "default"); + } + + try { + PictureElement pElem = new PictureElement(); + pElem.importPicture(symbol.getPicture()); + } + catch(IOException ioe) { + logger.warn("Could not read picture."); + } + symbolElement.setAttribute("style", "picture"); + symbolElement.setAttribute("type", "marker"); + return symbolElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/SimpleFillSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,151 @@ +package de.intevation.mxd.reader; + +import java.awt.Color; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.ILineSymbol; +import com.esri.arcgis.display.IFillSymbol; +import com.esri.arcgis.display.SimpleFillSymbol; +import com.esri.arcgis.display.esriSimpleFillStyle; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; + +import org.w3c.dom.Element; +import java.io.IOException; + +/** + * Reads simple marker symbol information. + * + * @author Raimund Renkert + */ +public class SimpleFillSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(SimpleFillSymbolReader.class); + + /** + * Private member. + */ + private SimpleFillSymbol symbol; + + public SimpleFillSymbolReader(ISymbol symbol) throws Exception{ + logger.debug("contructor(ISymbol)"); + if(symbol instanceof SimpleFillSymbol) { + this.symbol = (SimpleFillSymbol)symbol; + } + else { + throw new Exception("Not a SimpleFillSymbol!"); + } + } + + public SimpleFillSymbolReader(IFillSymbol symbol) throws Exception{ + logger.debug("contructor(IFillSymbol)"); + if(symbol instanceof SimpleFillSymbol) { + this.symbol = (SimpleFillSymbol)symbol; + } + else { + throw new Exception("Not a SimpleFillSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + Element symbolElement = util.addSymbol(parent); + + try { + symbolElement.setAttribute("name", symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\""); + symbolElement.setAttribute("name", "default"); + } + symbolElement.setAttribute("style", "fill"); + int style; + try { + style = symbol.getStyle(); + } + catch(IOException ioe) { + logger.warn( + "Could not read fill style."); + style = -1; + } + + switch(style) { + case esriSimpleFillStyle.esriSFSCross: + symbolElement.setAttribute("fillstyle", "cross"); break; + case esriSimpleFillStyle.esriSFSSolid: + symbolElement.setAttribute("fillstyle", "solid"); break; + case esriSimpleFillStyle.esriSFSVertical: + symbolElement.setAttribute("fillstyle", "vertical"); break; + case esriSimpleFillStyle.esriSFSHorizontal: + symbolElement.setAttribute("fillstyle", "horizontal"); break; + case esriSimpleFillStyle.esriSFSForwardDiagonal: + symbolElement.setAttribute("fillstyle", "fwdiagonal"); break; + case esriSimpleFillStyle.esriSFSBackwardDiagonal: + symbolElement.setAttribute("fillstyle", "bwdiagonal"); break; + case esriSimpleFillStyle.esriSFSDiagonalCross: + symbolElement.setAttribute("fillstyle", "diagonalcross"); + break; + default: break; + } + + try { + if(symbol.getColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(color.getTransparency())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(col.getTransparency())); + } + } + catch(IOException ioe) { + logger.warn("Could not read color."); + } + + try { + ILineSymbol ls = symbol.getOutline(); + LineSymbolReader lsr = new LineSymbolReader(); + if(lsr.canRead(ls)) { + lsr.setSymbol(ls); + lsr.setUtil(util); + lsr.setParent(symbolElement); + lsr.read(); + } + else { + logger.debug("The type of " + ls.getClass().toString() + + " is not implemented!"); + } + } + catch(Exception e) { + logger.warn("Could not read line symbol."); + } + + return symbolElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/SimpleLineSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/SimpleLineSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,133 @@ +package de.intevation.mxd.reader; + +import java.awt.Color; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.ILineSymbol; +import com.esri.arcgis.display.SimpleLineSymbol; +import com.esri.arcgis.display.esriSimpleLineStyle; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; + +import org.w3c.dom.Element; +import java.io.IOException; + +/** + * Reads simple line symbol information. + * + * @author Raimund Renkert + */ +public class SimpleLineSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(SimpleLineSymbolReader.class); + + /** + * Private member. + */ + private SimpleLineSymbol symbol; + + public SimpleLineSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof SimpleLineSymbol) { + this.symbol = (SimpleLineSymbol)symbol; + } + else { + throw new Exception("Not a SimpleLineSymbol!"); + } + } + + public SimpleLineSymbolReader(ILineSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof SimpleLineSymbol) { + this.symbol = (SimpleLineSymbol)symbol; + } + else { + throw new Exception("Not a SimpleLineSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + Element symbolElement = util.addSymbol(parent); + + try { + symbolElement.setAttribute("name", symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\""); + symbolElement.setAttribute("name", "default"); + } + + try { + if(symbol.getColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + } + } + catch(IOException ioe) { + logger.warn("Could not read color."); + } + + try { + symbolElement.setAttribute("width", String.valueOf(symbol.getWidth())); + } + catch(IOException ioe) { + logger.warn("Could not read width."); + } + + int style; + try { + style = symbol.getStyle(); + } + catch(IOException ioe) { + logger.warn("Could not read line style."); + style = -1; + } + switch(style) { + case esriSimpleLineStyle.esriSLSSolid: + symbolElement.setAttribute("linestyle", "solid"); break; + case esriSimpleLineStyle.esriSLSDash: + symbolElement.setAttribute("linestyle", "dash"); break; + case esriSimpleLineStyle.esriSLSDot: + symbolElement.setAttribute("linestyle", "dot"); break; + case esriSimpleLineStyle.esriSLSDashDot: + symbolElement.setAttribute("linestyle", "dashdot"); break; + case esriSimpleLineStyle.esriSLSDashDotDot: + symbolElement.setAttribute("linestyle", "dashdotdot"); break; + default: break; + } + + symbolElement.setAttribute("type", "line"); + symbolElement.setAttribute("style", "simple"); + + return symbolElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/SimpleMarkerSymbolReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,183 @@ +package de.intevation.mxd.reader; + +import java.awt.Color; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.display.IMarkerSymbol; +import com.esri.arcgis.display.SimpleMarkerSymbol; +import com.esri.arcgis.display.esriSimpleMarkerStyle; +import com.esri.arcgis.display.IRgbColor; +import com.esri.arcgis.display.RgbColor; + +import org.w3c.dom.Element; +import java.io.IOException; + +/** + * Reads simple marker symbol information. + * + * @author Raimund Renkert + */ +public class SimpleMarkerSymbolReader +extends AbstractSymbolReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(SimpleMarkerSymbolReader.class); + + /** + * Private member. + */ + private SimpleMarkerSymbol symbol; + + public SimpleMarkerSymbolReader(ISymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof SimpleMarkerSymbol) { + this.symbol = (SimpleMarkerSymbol)symbol; + } + else { + throw new Exception("Not a SimpleMarkerSymbol!"); + } + } + + public SimpleMarkerSymbolReader(IMarkerSymbol symbol) + throws Exception { + logger.debug("contructor()"); + if(symbol instanceof SimpleMarkerSymbol) { + this.symbol = (SimpleMarkerSymbol)symbol; + } + else { + throw new Exception("Not a SimpleMarkerSymbol!"); + } + } + + /** + * Reads the symbol attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + Element symbolElement = util.addSymbol(parent); + + try { + symbolElement.setAttribute("name", symbol.getNameString()); + } + catch(IOException ioe) { + logger.warn("Could not read name. Setting name to \"default\"."); + symbolElement.setAttribute("name", "default"); + } + + try { + if(symbol.getStyle() == esriSimpleMarkerStyle.esriSMSCircle) + symbolElement.setAttribute("style", "point"); + } + catch(IOException ioe) { + logger.warn("Could not read marker style."); + } + + try { + if(symbol.getColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(color.getTransparency())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute("color", String.valueOf(c.getRGB())); + symbolElement.setAttribute("transparency", + String.valueOf(col.getTransparency())); + } + } + catch(IOException ioe) { + logger.warn("Could not read color."); + } + + try { + symbolElement.setAttribute( + "size", + String.valueOf(symbol.getSize())); + } + catch(IOException ioe) { + logger.warn("Could not read size. Setting size to 1."); + symbolElement.setAttribute("size", "1"); + } + + try { + symbolElement.setAttribute( + "outline_size", + String.valueOf(symbol.getOutlineSize())); + } + catch(IOException ioe) { + logger.warn( + "Could not read outline size."); + } + + try { + if(symbol.getOutlineColor() instanceof IRgbColor) { + IRgbColor color = (IRgbColor)symbol.getOutlineColor(); + Color c = new Color ( + color.getRed(), + color.getGreen(), + color.getBlue()); + symbolElement.setAttribute( + "outline_color", + String.valueOf(c.getRGB())); + symbolElement.setAttribute("outline_transparency", + String.valueOf(color.getTransparency())); + } + else { + RgbColor col = new RgbColor(); + col.setRGB(symbol.getOutlineColor().getRGB()); + Color c = new Color ( + col.getRed(), + col.getGreen(), + col.getBlue()); + symbolElement.setAttribute( + "outline_color", + String.valueOf(c.getRGB())); + symbolElement.setAttribute("outline_transparency", + String.valueOf(col.getTransparency())); + } + } + catch(IOException ioe) { + logger.warn("Could not read outline color."); + } + + try { + symbolElement.setAttribute( + "angle", + String.valueOf(symbol.getAngle())); + } + catch(IOException ioe) { + logger.warn("Could not read angle."); + } + + try { + symbolElement.setAttribute( + "offset", + symbol.getXOffset() + "," + symbol.getYOffset()); + } + catch(IOException ioe) { + logger.warn("Could not read offset."); + } + + symbolElement.setAttribute("type", "marker"); + return symbolElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/SimpleRendererReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/SimpleRendererReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,131 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.carto.IFeatureRenderer; +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.carto.SimpleRenderer; + +import org.w3c.dom.Element; +import java.io.IOException; + +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * Reads simple renderer information. + * + * @author Raimund Renkert + */ +public class SimpleRendererReader +implements IRendererReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(SimpleRendererReader.class); + + /** + * Private member. + */ + private ISymbol symbol; + private SimpleRenderer renderer; + private Element layer; + private MapToXMLUtils util; + + + public SimpleRendererReader(IFeatureRenderer renderer) + throws Exception { + logger.debug("constructor()"); + if(renderer instanceof SimpleRenderer) { + this.renderer = (SimpleRenderer)renderer; + } + else{ + throw new Exception ("Not an instance of SimpleRenderer!"); + } + } + + /** + * Setter for the parent XML element. + * + * @param parent The XML parent node. + */ + public void setParent(Element parent) { + this.layer = parent; + } + + /** + * Setter for the XML document helper. + * + * @param util The helper class for storing map information. + */ + public void setUtil(MapToXMLUtils util) { + this.util = util; + } + + /** + * Reads the renderer attributes. + * + * @return The XML node. + */ + public Element read() { + logger.debug("read()"); + Element rendererElement; + rendererElement = util.addRenderer(layer); + + try { + rendererElement.setAttribute("label", renderer.getLabel()); + } + catch(IOException ioe) { + logger.warn( + "Could not read label name." + + "Setting label name to \"default-label\""); + rendererElement.setAttribute("label", "default-label"); + } + + try { + rendererElement.setAttribute( + "description", + renderer.getDescription()); + } + catch(IOException ioe) { + logger.warn("Could not read description."); + } + + try { + symbol = renderer.getSymbol(); + + MarkerSymbolReader markerReader = new MarkerSymbolReader(); + LineSymbolReader lineReader = new LineSymbolReader(); + FillSymbolReader fillReader = new FillSymbolReader(); + if(markerReader.canRead(symbol)) { + markerReader.setSymbol(symbol); + markerReader.setUtil(util); + markerReader.setParent(rendererElement); + markerReader.read(); + } + else if(lineReader.canRead(symbol)) { + lineReader.setSymbol(symbol); + lineReader.setUtil(util); + lineReader.setParent(rendererElement); + lineReader.read(); + } + else if(fillReader.canRead(symbol)) { + fillReader.setSymbol(symbol); + fillReader.setUtil(util); + fillReader.setParent(rendererElement); + fillReader.read(); + } + else { + logger.debug( + "No known Symbol type: " + + symbol.getClass().toString()); + } + } + catch(Exception e) { + logger.error("Could not read symbol. Stopped reading renderer."); + } + return layer; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/UniqueValueRendererReader.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,157 @@ +package de.intevation.mxd.reader; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.carto.IFeatureRenderer; +import com.esri.arcgis.display.ISymbol; +import com.esri.arcgis.carto.UniqueValueRenderer; + +import org.w3c.dom.Element; +import java.io.IOException; + +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * Reads unique vaule renderer information. + * + * @author Raimund Renkert + */ +public class UniqueValueRendererReader +implements IRendererReader { + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(FeatureLayerReader.class); + + /** + * Private Member. + */ + private UniqueValueRenderer renderer; + private Element layer; + private MapToXMLUtils util; + + + public UniqueValueRendererReader(IFeatureRenderer renderer) + throws Exception { + logger.debug("constructor()"); + if (renderer instanceof UniqueValueRenderer) { + this.renderer = (UniqueValueRenderer)renderer; + } + else { + throw new Exception ("Not an instance of UniqueValueRenderer."); + } + } + + /** + * Setter for the parent XML element. + * + * @param parent The XML parent node. + */ + public void setParent(Element parent) { + this.layer = parent; + } + + /** + * Setter for XML document helper. + * + * @param util The helper class for storing map information. + */ + public void setUtil(MapToXMLUtils util) { + this.util = util; + } + + /** + * Reads the renderer attributes. + * + * @return The parent XML node. + */ + public Element read() { + logger.debug("read()"); + int count = 0; + try { + count = renderer.getClassCount(); + } + catch(IOException ioe) { + logger.error( + "Could not read class count."+ + " Stopped reading renderer."); + return layer; + } + for(int i = 0; i < count - 1; i++) { + Element rendererElement = util.addRenderer(layer); + + try { + String value = renderer.getValue(i); + value = value.replaceAll(" ", ""); + if(value.indexOf(",") > 0) { + int j = 0; + while(value.indexOf(",") > 0) { + String v = value.substring(0, value.indexOf(",")); + rendererElement.setAttribute("value_" + j, v); + value = value.substring( + value.indexOf(",") + 1, + value.length()); + j++; + } + rendererElement.setAttribute("value_" + j, value); + } + else { + rendererElement.setAttribute("value", value); + } + + value = renderer.getValue(i); + rendererElement.setAttribute("name", renderer.esri_getClass(i)); + rendererElement.setAttribute("description", + renderer.getDescription(value)); + + rendererElement.setAttribute("label", renderer.getLabel(value)); + rendererElement.setAttribute( + "field_count", + String.valueOf(renderer.getFieldCount())); + for(int j = 0; j < renderer.getFieldCount(); j++) { + rendererElement.setAttribute( + "expression_field_" + j, + renderer.getField(j)); + } + rendererElement.setAttribute("expression_operator", "="); + + ISymbol sym = renderer.getSymbol(value); + MarkerSymbolReader markerReader = new MarkerSymbolReader(); + LineSymbolReader lineReader = new LineSymbolReader(); + FillSymbolReader fillReader = new FillSymbolReader(); + if(markerReader.canRead(sym)) { + markerReader.setSymbol(sym); + markerReader.setUtil(util); + markerReader.setParent(rendererElement); + markerReader.read(); + } + else if(lineReader.canRead(sym)) { + lineReader.setSymbol(sym); + lineReader.setUtil(util); + lineReader.setParent(rendererElement); + lineReader.read(); + } + else if(fillReader.canRead(sym)) { + fillReader.setSymbol(sym); + fillReader.setUtil(util); + fillReader.setParent(rendererElement); + fillReader.read(); + } + else { + logger.debug("Not a known symbol type: " + + sym.getClass().toString()); + } + } + catch(Exception e) { + logger.error( + "Could not read unique value data." + + e.toString()); + return layer; + } + } + return layer; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/utils/MapToXMLUtils.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/utils/MapToXMLUtils.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2010 by Intevation GmbH + * + * This program is free software under the LGPL (>=v2.1) + * Read the file LGPL.txt coming with the software for details + * or visit http://www.gnu.org/licenses/ if it does not exist. + */ +package de.intevation.mxd.utils; + +import org.apache.log4j.Logger; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.w3c.dom.DOMException; + +/** + * Utility class to store map information in a XML structure. + * + * @author Raimund Renkert + */ +public class MapToXMLUtils +{ + /** + * The logger. + */ + private static final Logger logger = Logger.getLogger(MapToXMLUtils.class); + + /** + * Private member. + */ + private Document root; + private Element rootElement; + private XMLUtils.ElementCreator creator; + + + public MapToXMLUtils() { + this.root = XMLUtils.newDocument(); + creator = new XMLUtils.ElementCreator(root, "", ""); + rootElement = creator.create("mxd"); + root.appendChild(rootElement); + } + + /** + * Add the mxd filename to the dom. + * @param path Path to the mxdfile. + * @return Currently always true. + */ + public boolean addFilename(String path) { + Element file = creator.create("file"); + file.setAttribute("name", path); + rootElement.appendChild(file); + return true; + } + + /** + * Create the top level map element. + * @return The new map element. + */ + public Element createMap() + throws Exception { + Element map; + NodeList list = root.getElementsByTagName("map"); + if(list == null || list.getLength() == 0){ + map = creator.create("map"); + rootElement.appendChild(map); + } + else if(list.getLength() == 1){ + map = (Element)list.item(0); + } + else{ + throw new Exception("Error while creating map node."); + } + return map; + } + + /** + * Add a layer element to the map. + * @param name The layer name. + * @return The layer element. + */ + public Element addLayer() + throws Exception { + Element node = creator.create("layer"); + NodeList list = root.getElementsByTagName("map"); + if(list == null || list.getLength() == 0){ + throw new Exception("No map node found!"); + } + else if(list.getLength() > 1) { + throw new Exception("Found more than one map node." + + " This should never happen!"); + } + else { + list.item(0).appendChild(node); + return node; + } + } + + /** + * Remove a layer element from map. + * @param name The layer name. + */ + public void removeLayer(Element layerElement) { + NodeList list = root.getElementsByTagName("map"); + if(list == null || list.getLength() == 0){ + return; + } + else if(list.getLength() > 1) { + return; + } + else { + try { + list.item(0).removeChild(layerElement); + } + catch(DOMException de) { + return; + } + } + } + + /** + * Add a renderer element to the map. + * @param layer The parent layer element. + * @return The renderer element. + */ + public Element addRenderer(Element layer) { + Element node = creator.create("renderer"); + layer.appendChild(node); + return node; + } + + /** + * Add a symbol element to the map. + * @param renderer The parent renderer element. + * @return The symbol element. + */ + public Element addSymbol(Element renderer) { + Element node = creator.create("symbol"); + renderer.appendChild(node); + return node; + } + + /** + * Print out the XML document. + */ + public void print() { + XMLUtils.toStream(root, System.out); + } + + /** + * Get the DOM document. + * @return The root document. + */ + public Document getDocument() { + return root; + } +} diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/utils/XMLUtils.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/utils/XMLUtils.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,361 @@ +/* + * Copyright (c) 2010 by Intevation GmbH + * + * This program is free software under the LGPL (>=v2.1) + * Read the file LGPL.txt coming with the software for details + * or visit http://www.gnu.org/licenses/ if it does not exist. + */ + +package de.intevation.mxd.utils; + +import java.io.ByteArrayInputStream; +import java.io.FileInputStream; +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import javax.xml.namespace.NamespaceContext; +import javax.xml.namespace.QName; + +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.TransformerFactoryConfigurationError; + +import javax.xml.transform.dom.DOMSource; + +import javax.xml.transform.stream.StreamResult; + +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathFactory; + +import org.apache.log4j.Logger; + +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import org.xml.sax.SAXException; + +/** + * Some helper functions to ease work with XML concering namespaces, XPATH + * and so on. + * @author Sascha L. Teichmann + */ +public final class XMLUtils +{ + /** + * W3C URL of XForms + */ + public static final String XFORM_URL = "http://www.w3.org/2002/xforms"; + /** + * W3C prefix of XForms + */ + public static final String XFORM_PREFIX = "xform"; + + private static Logger logger = Logger.getLogger(XMLUtils.class); + + private XMLUtils() { + } + + /** + * Helper class to generate elements and attributes with + * namespaces. + */ + public static class ElementCreator + { + /** + * owner document of the elements to be created + */ + protected Document document; + /** + * namespace to be used + */ + protected String ns; + /** + * prefix to be used + */ + protected String prefix; + + /** + * Constructor to create an element/attribute creator + * with a given namespace and namespace prefix using a + * given owner document. + * @param document The owning document + * @param ns The namespace + * @param prefix The namespace prefix + */ + public ElementCreator(Document document, String ns, String prefix) { + this.document = document; + this.ns = ns; + this.prefix = prefix; + } + + /** + * Creates a new element using the owning document with + * the this creators namespace and namespace prefix. + * @param name The name of the element + * @return The new element + */ + public Element create(String name) { + Element element = document.createElementNS(ns, name); + element.setPrefix(prefix); + return element; + } + + /** + * Adds a new attribute and its value to a given element. + * It does not set the namespace prefix. + * @param element The element to add the attribute to + * @param name The name of the attribute + * @param value The value of the attribute + */ + public void addAttr(Element element, String name, String value) { + addAttr(element, name, value, false); + } + + /** + * Adds a new attribute and its value to a given element. + * If the namespace prefix is used is decided by the 'addPrefix' flag. + * @param element The element to add the attribute to + * @param name The name of the attribute + * @param value The value of the attribute + * @param addPrefix If true the creators namespace prefix is + * set on the attribute. + */ + public void addAttr( + Element element, + String name, + String value, + boolean addPrefix + ) { + if (addPrefix) { + Attr attr = document.createAttributeNS(ns, name); + attr.setValue(value); + attr.setPrefix(prefix); + + element.setAttributeNode(attr); + } + else { + element.setAttribute(name, value); + } + + } + } // class ElementCreator + + /** + * Creates a new XML document + * @return the new XML document ot null if something went wrong during + * creation. + */ + public static final Document newDocument() { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + + try { + return factory.newDocumentBuilder().newDocument(); + } + catch (ParserConfigurationException pce) { + logger.error(pce.getLocalizedMessage(), pce); + } + return null; + } + + /** + * Loads a XML document namespace aware from a file + * @param file The file to load. + * @return the XML document or null if something went wrong + * during loading. + */ + public static final Document parseDocument(File file) { + InputStream inputStream = null; + try { + inputStream = new BufferedInputStream(new FileInputStream(file)); + return parseDocument(inputStream); + } + catch (IOException ioe) { + logger.error(ioe.getLocalizedMessage(), ioe); + } + finally { + if (inputStream != null) { + try { inputStream.close(); } + catch (IOException ioe) {} + } + } + return null; + } + + public static final Document parseDocument(InputStream inputStream) { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + + try { + return factory.newDocumentBuilder().parse(inputStream); + } + catch (ParserConfigurationException pce) { + logger.error(pce.getLocalizedMessage(), pce); + } + catch (SAXException se) { + logger.error(se.getLocalizedMessage(), se); + } + catch (IOException ioe) { + logger.error(ioe.getLocalizedMessage(), ioe); + } + return null; + } + + /** + * Creates a new XPath without a namespace context. + * @return the new XPath. + */ + public static final XPath newXPath() { + return newXPath(null); + } + + /** + * Creates a new XPath with a given namespace context. + * @param namespaceContext The namespace context to be used or null + * if none should be used. + * @return The new XPath + */ + public static final XPath newXPath(NamespaceContext namespaceContext) { + XPathFactory factory = XPathFactory.newInstance(); + XPath xpath = factory.newXPath(); + if (namespaceContext != null) { + xpath.setNamespaceContext(namespaceContext); + } + return xpath; + } + + /** + * Evaluates an XPath query on a given object and returns the result + * as a given type. No namespace context is used. + * @param root The object which is used as the root of the tree to + * be searched in. + * @param query The XPath query + * @param returnTyp The type of the result. + * @return The result of type 'returnTyp' or null if something + * went wrong during XPath evaluation. + */ + public static final Object xpath( + Object root, + String query, + QName returnTyp + ) { + return xpath(root, query, returnTyp, null); + } + + /** + * Evaluates an XPath query on a given object and returns the result + * as a string. A given namespace context is used. + * @param root The object which is used as the root of the tree to + * be searched in. + * @param query The XPath query + * @param namespaceContext The namespace context to be used or null + * if none should be used. + * @return The result of the query or null if something went wrong + * during XPath evaluation. + */ + public static final String xpathString( + Object root, String query, NamespaceContext namespaceContext + ) { + return (String)xpath( + root, query, XPathConstants.STRING, namespaceContext); + } + + /** + * Evaluates an XPath query on a given object and returns the result + * as a given type. Optionally a namespace context is used. + * @param root The object which is used as the root of the tree to + * be searched in. + * @param query The XPath query + * @param returnType The type of the result. + * @param namespaceContext The namespace context to be used or null + * if none should be used. + * @return The result of type 'returnTyp' or null if something + * went wrong during XPath evaluation. + */ + public static final Object xpath( + Object root, + String query, + QName returnType, + NamespaceContext namespaceContext + ) { + if (root == null) { + return null; + } + + try { + XPath xpath = newXPath(namespaceContext); + if (xpath != null) { + return xpath.evaluate(query, root, returnType); + } + } + catch (XPathExpressionException xpee) { + logger.error(xpee.getLocalizedMessage(), xpee); + } + + return null; + } + + /** + * Streams out an XML document to a given output stream. + * @param document The document to be streamed out. + * @param out The output stream to be used. + * @return true if operation succeeded else false. + */ + public static boolean toStream(Document document, OutputStream out) { + try { + Transformer transformer = + TransformerFactory.newInstance().newTransformer(); + DOMSource source = new DOMSource(document); + StreamResult result = new StreamResult(out); + transformer.transform(source, result); + return true; + } + catch (TransformerConfigurationException tce) { + logger.error(tce.getLocalizedMessage(), tce); + } + catch (TransformerFactoryConfigurationError tfce) { + logger.error(tfce.getLocalizedMessage(), tfce); + } + catch (TransformerException te) { + logger.error(te.getLocalizedMessage(), te); + } + + return false; + } + + /** + * Transforms an XML document into a byte array. + * @param document The document to be streamed out. + * @return the byte array or null if operation failed or + * document is null. + */ + public static byte [] toByteArray(Document document) { + if (document == null) { + return null; + } + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + return toStream(document, baos) + ? baos.toByteArray() + : null; + } + + public static Document fromByteArray(byte [] data) { + if (data == null) { + return null; + } + return parseDocument(new ByteArrayInputStream(data)); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/writer/FillStyleWriter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/writer/FillStyleWriter.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,324 @@ +package de.intevation.mxd.writer; + +import java.io.IOException; +import java.awt.Color; +import org.apache.log4j.Logger; + +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import edu.umn.gis.mapscript.mapObj; +import edu.umn.gis.mapscript.layerObj; +import edu.umn.gis.mapscript.classObj; +import edu.umn.gis.mapscript.styleObj; +import edu.umn.gis.mapscript.colorObj; +import edu.umn.gis.mapscript.symbolObj; +import edu.umn.gis.mapscript.symbolSetObj; +import edu.umn.gis.mapscript.lineObj; +import edu.umn.gis.mapscript.pointObj; + + +/** + * The interface to the mapfile writer. + * + * @author Raimund Renkert + */ +public class FillStyleWriter { + + /** + * The Logger. + */ + private static final Logger logger = + Logger.getLogger(FillStyleWriter.class); + + private mapObj map; + private classObj cl; + private styleObj style; + + public FillStyleWriter (mapObj map, classObj cl) { + logger.debug("contructor(mapObj, classObj)"); + this.map = map; + this.cl = cl; + this.style = new styleObj(cl); + } + + /** + * Write the content. + */ + public boolean write(Element symbolElement) { + logger.debug("write()Element"); + symbolSetObj symbolSet = map.getSymbolset(); + + if(symbolElement.hasChildNodes()) { + NodeList symbols = symbolElement.getChildNodes(); + for (int i = 0; i < symbols.getLength(); i++) { + Element nextSym = (Element)symbols.item(i); + String type = nextSym.getAttribute("type"); + + if(((symbols.getLength() > 1 && i == 0) || + (symbols.getLength() == 1 && + !symbolElement.hasAttribute("hatch"))) && + type.equals("line")) { + writeOutline(nextSym); + if (symbols.getLength() == 1) { + writeSimple(symbolElement); + } + } + else if(nextSym.getTagName().equals("symbol") && + !symbolElement.hasAttribute("hatch") || + (i == 1 && type.equals("marker"))) { + double gap = 0; + if(symbolElement.hasAttribute("xseparation")) { + try { + gap = Double.parseDouble( + symbolElement.getAttribute("xseparation")); + } + catch(NumberFormatException nfe) { + gap = 0; + } + } + writeMarker(nextSym, gap); + } + else if (nextSym.getTagName().equals("symbol") && + symbolElement.hasAttribute("hatch")) { + if(symbolElement.hasAttribute("angle")) { + nextSym.setAttribute( + "angle", + symbolElement.getAttribute("angle")); + } + if(symbolElement.hasAttribute("separation")) { + nextSym.setAttribute( + "size", + symbolElement.getAttribute("separation")); + } + writeMarker(nextSym, -1); + } + else { + writeSimple(symbolElement); + } + } + } + else { + writeSimple(symbolElement); + if(symbolElement.hasAttribute("outline_color")) { + Color oCol = Color.decode( + symbolElement.getAttribute("outline_color")); + colorObj outlineColor = new colorObj( + oCol.getRed(), + oCol.getGreen(), + oCol.getBlue(), + -4); + style.setOutlinecolor(outlineColor); + try { + style.setOutlinewidth(Double.parseDouble( + symbolElement.getAttribute("outline_size"))); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting outline width."); + style.setOutlinewidth(0.0); + } + } + + } + + return true; + } + + /** + * Write the outline for a polygon. + */ + private void writeOutline(Element symbolElement) { + logger.debug("writeOutline()"); + //write transparent outline + colorObj color = new colorObj(-1, -1, -1, -4); + if(symbolElement.hasAttribute("width")) { + double w = 0; + try { + w = Double.parseDouble(symbolElement.getAttribute("width")); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting outline width."); + w = 0; + } + if (w < 1.0) { + return; + } + } + //write new style for the outline + //TODO write further attribute like pattern etc. + Color oCol = Color.decode( + symbolElement.getAttribute("color")); + + styleObj outline = new styleObj (cl); + + colorObj outlinecolor = new colorObj( + oCol.getRed(), + oCol.getGreen(), + oCol.getBlue(), + -4); + outline.setOutlinecolor(outlinecolor); + try { + outline.setOutlinewidth(Double.parseDouble( + symbolElement.getAttribute("width"))); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting outline width."); + outline.setOutlinewidth(0.0); + } + if(symbolElement.hasAttribute("linestyle")) { + String ls = symbolElement.getAttribute("linestyle"); + double[] vals; + if(ls.equals("dash")) { + outline.setPatternlength(2); + vals = new double[] {4.0, 4.0, 0, 0, 0, 0, 0, 0, 0, 0}; + outline.setPattern(vals); + } + else if(ls.equals("dot")) { + outline.setPatternlength(2); + vals = new double[] {1.0, 3.0, 0, 0, 0, 0, 0, 0, 0, 0}; + outline.setPattern(vals); + } + else if(ls.equals("dashdot")) { + outline.setPatternlength(4); + vals = new double[] {4.0, 3.0, 1.0, 3.0, 0, 0, 0, 0, 0, 0, 0}; + outline.setPattern(vals); + } + else if (ls.equals("dashdotdot")) { + outline.setPatternlength(6); + vals = new double[] {5.0, 3.0, 1.0, 3.0, 1.0, 4.0, 0, 0, 0, 0}; + outline.setPattern(vals); + } + } + + + } + + /** + * Write marker attributes and a symbol for the polygon fill. + */ + private void writeMarker(Element symbolElement, double gap) { + logger.debug("writeMarker()"); + String name = symbolElement.getAttribute("name"); + String type = symbolElement.getAttribute("type"); + if (symbolElement.hasAttribute("angle")) { + try { + style.setAngle( + Double.parseDouble(symbolElement.getAttribute("angle"))); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting angle."); + style.setAngle(0.0); + } + } + if(symbolElement.hasAttribute("color")) { + String c = symbolElement.getAttribute("color"); + Color col = Color.decode(c); + colorObj color = new colorObj( + col.getRed(), + col.getGreen(), + col.getBlue(), + -4); + style.setColor(color); + } + if (symbolElement.hasAttribute ("size")) { + double size = 1; + try { + size = Double.parseDouble(symbolElement.getAttribute("size")); + } + catch(NumberFormatException nfe) { + size = 1.0; + } + style.setSize(size); + //In arcgis the separation goes from center to center, so the gap is + //the separation - size + if (gap > 0) { + style.setGap(gap - size); + } + } + if(symbolElement.hasAttribute("outline_color")) { + Color oCol = Color.decode( + symbolElement.getAttribute("outline_color")); + colorObj outlineColor = new colorObj( + oCol.getRed(), + oCol.getGreen(), + oCol.getBlue(), + -4); + style.setOutlinecolor(outlineColor); + try { + style.setOutlinewidth(Double.parseDouble( + symbolElement.getAttribute("outline_size"))); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting angle."); + style.setOutlinewidth(0.0); + } + } + if(type.equals("marker")) { + style.setSymbolByName(map, name); + SymbolWriter sw = new SymbolWriter(this.map, this.cl); + sw.write(symbolElement); + } + else if(type.equals("line")) { + style.setSymbolByName(map, "hatch"); + SymbolWriter sw = new SymbolWriter(this.map, this.cl); + symbolElement.setAttribute("name", "hatch"); + sw.write(symbolElement); + if(symbolElement.hasAttribute("linestyle")) { + String ls = symbolElement.getAttribute("linestyle"); + double[] vals; + if(ls.equals("dash")) { + style.setPatternlength(2); + vals = new double[] {4.0, 4.0, 0, 0, 0, 0, 0, 0, 0, 0}; + style.setPattern(vals); + } + else if(ls.equals("dot")) { + style.setPatternlength(2); + vals = new double[] {1.0, 3.0, 0, 0, 0, 0, 0, 0, 0, 0}; + style.setPattern(vals); + } + else if(ls.equals("dashdot")) { + style.setPatternlength(4); + vals = new double[] {4.0, 3.0, 1.0, 3.0, 0, 0, 0, 0, 0, 0, 0}; + style.setPattern(vals); + } + else if (ls.equals("dashdotdot")) { + style.setPatternlength(6); + vals = new double[] {5.0, 3.0, 1.0, 3.0, 1.0, 4.0, 0, 0, 0, 0}; + style.setPattern(vals); + } + } + } + } + + /** + * Write simple fill attributes. + */ + private void writeSimple(Element symbolElement) { + logger.debug("writeSimple(Element)"); + if(symbolElement.hasAttribute("transparency")) { + double value = 0; + try { + value = Double.parseDouble( + symbolElement.getAttribute("transparency")); + } + catch(NumberFormatException nfe) { + value = 0; + } + int opacity = (int)(value/255) * 100; + if(value >= 0) { + style.setOpacity(opacity); + } + } + if(symbolElement.hasAttribute("color")) { + String c = symbolElement.getAttribute("color"); + Color col = Color.decode(c); + colorObj color = new colorObj( + col.getRed(), + col.getGreen(), + col.getBlue(), + -4); + style.setColor(color); + } + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/writer/IWriter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/writer/IWriter.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,16 @@ +package de.intevation.mxd.writer; + +import org.w3c.dom.Document; + +/** + * The interface to the mapfile writer. + * + * @author Raimund Renkert + */ +public interface IWriter { + /** + * Write the content. + */ + boolean write(Document doc); +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/writer/LineStyleWriter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/writer/LineStyleWriter.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,168 @@ +package de.intevation.mxd.writer; + +import java.awt.Color; + +import org.apache.log4j.Logger; + +import org.w3c.dom.Element; + +import edu.umn.gis.mapscript.mapObj; +import edu.umn.gis.mapscript.classObj; +import edu.umn.gis.mapscript.styleObj; +import edu.umn.gis.mapscript.colorObj; +import edu.umn.gis.mapscript.symbolObj; +import edu.umn.gis.mapscript.symbolSetObj; + + +/** + * The interface to the mapfile writer. + * + * @author Raimund Renkert + */ +public class LineStyleWriter { + + /** + * The Logger. + */ + private static final Logger logger = Logger.getLogger(LineStyleWriter.class); + + private mapObj map; + private classObj cl; + private styleObj style; + + public LineStyleWriter (mapObj map, classObj cl) { + this.map = map; + this.cl = cl; + this.style = new styleObj(cl); + } + + /** + * Write the content. + */ + public boolean write(Element symbolElement) { + logger.debug("write(Element)"); + symbolSetObj symbolSet = map.getSymbolset(); + if(symbolElement.hasAttribute("width")) { + double w = 0; + try { + w = Double.parseDouble(symbolElement.getAttribute("width")); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting width. No line width set."); + w = 0; + } + if(w < 1.0) { + return false; + } + style.setWidth((int)w); + } + if(symbolElement.hasAttribute("angle")) { + try { + style.setAngle( + Double.parseDouble(symbolElement.getAttribute("angle"))); + } + catch(NumberFormatException nfe) { + logger.info("Error setting angle. Could not get value."); + } + } + if(symbolElement.hasAttribute("color")) { + String c = symbolElement.getAttribute("color"); + Color col = Color.decode(c); + colorObj color = new colorObj( + col.getRed(), + col.getGreen(), + col.getBlue(), + -4); + style.setColor(color); + } + + if(symbolElement.hasAttribute("size")) { + try { + style.setSize((int)Double.parseDouble( + symbolElement.getAttribute("size"))); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting size. Setting size to 1."); + style.setSize (1); + } + } + String type = symbolElement.getAttribute("type"); + if(type.equals("marker")) { + SymbolWriter sw = new SymbolWriter(this.map, this.cl); + sw.write(symbolElement); + } + String name = symbolElement.getAttribute("name"); + style.setSymbolByName(map, name); + symbolObj sym = symbolSet.getSymbolByName(name); + + //The following lines are for dashed and/or dotted lines. + if(symbolElement.hasAttribute("linestyle")) { + String ls = symbolElement.getAttribute("linestyle"); + double[] vals; + if(ls.equals("dash")) { + style.setPatternlength(2); + vals = new double[] {4.0, 4.0, 0, 0, 0, 0, 0, 0, 0, 0}; + style.setPattern(vals); + } + else if(ls.equals("dot")) { + style.setPatternlength(2); + vals = new double[] {1.0, 4.0, 0, 0, 0, 0, 0, 0, 0, 0}; + style.setPattern(vals); + } + else if(ls.equals("dashdot")) { + style.setPatternlength(4); + vals = new double[] {5.0, 4.0, 1.0, 4.0, 0, 0, 0, 0, 0, 0}; + style.setPattern(vals); + } + else if (ls.equals("dashdotdot")) { + style.setPatternlength(6); + vals = new double[] {5.0, 4.0, 1.0, 3.0, 1.0, 4.0, 0, 0, 0, 0}; + style.setPattern(vals); + } + } + else if(symbolElement.hasAttribute("pattern_count")) { + int count = 0; + try { + count = Integer.parseInt( + symbolElement.getAttribute("pattern_count")); + double[] vals = new double[10]; + double move = 0.0; + int pos = 0; + for(int i = 0; i < count; i++) { + double mark = + Double.parseDouble(symbolElement.getAttribute("mark_" + i)); + double gap = + Double.parseDouble(symbolElement.getAttribute("gap_" + i)); + if(i == 0 && mark == 0.0) { + move = gap; + } + else if(i == count - 1 && move > 0.0) { + vals[pos++] = mark; + vals[pos++] = gap + move; + } + else { + vals[pos++] = mark; + vals[pos++] = gap; + } + } + if(move > 0.0) { + style.setPatternlength((count*2) -2); + } + else { + style.setPatternlength(count*2); + } + style.setPattern(vals); + + } + catch(NumberFormatException nfe) { + logger.warn("Could not write PATTERN."); + } + } + + + + + return false; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/writer/MapScriptWriter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/writer/MapScriptWriter.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,382 @@ +package de.intevation.mxd.writer; + +import org.apache.log4j.Logger; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import java.io.File; + +import javax.xml.xpath.XPathConstants; + +import edu.umn.gis.mapscript.mapObj; +import edu.umn.gis.mapscript.layerObj; +import edu.umn.gis.mapscript.classObj; + +import edu.umn.gis.mapscript.MS_UNITS; +import edu.umn.gis.mapscript.MS_LAYER_TYPE; +import edu.umn.gis.mapscript.MS_CONNECTION_TYPE; + +import de.intevation.mxd.utils.XMLUtils; + +/** + * The Mapfile Writer. + * This Writer uses the MapScript Java API to create Mapfiles from a DOM. + * + * @author Raimund Renkert + */ +public class MapScriptWriter +implements IWriter +{ + /** + * The Logger. + */ + private static final Logger logger = Logger.getLogger(MapScriptWriter.class); + + /** + * Private member. + */ + private Document root; + private mapObj map; + private String mapFilename; + private String MS_BINDIR = "c:/ms_6.1-dev/bin"; + private String prefix = ""; + + public MapScriptWriter() { + map = new mapObj(""); + mapFilename = ""; + } + + public MapScriptWriter(String templ, String filename) { + map = new mapObj(templ); + mapFilename = filename; + } + + /** + * Write the mapfile. + * @param doc The root document containin the map attributes. + * + * @return Currently always true. + */ + public boolean write(Document doc) { + logger.debug("write()"); + this.root = doc; + + //Get the filename. + Element fileNode = (Element)XMLUtils.xpath( + root, + "/mxd/file", + XPathConstants.NODE); + //Write the map attributes. + writeMap(); + //Write the layers. + writeLayer(); + //Save the map. + mapObj cloneMap = map.cloneMap(); + cloneMap.save(mapFilename); + logger.info("Mapfile successfully created."); + return true; + } + + /** + * Create the map object and set the attributes. + */ + private void writeMap() { + logger.debug("writeMap()"); + //Get the map. + Element mapNode = (Element)XMLUtils.xpath( + root, + "/mxd/map", + XPathConstants.NODE); + + //Set the name. + map.setName(mapNode.getAttribute("name")); + map.setMetaData("wms_title", mapNode.getAttribute("name")); + //Set the extent. + map.setExtent( + Double.parseDouble(mapNode.getAttribute("extent_min_x")), + Double.parseDouble(mapNode.getAttribute("extent_min_y")), + Double.parseDouble(mapNode.getAttribute("extent_max_x")), + Double.parseDouble(mapNode.getAttribute("extent_max_y"))); + + //Set the units. + String units = mapNode.getAttribute("units"); + MS_UNITS msu; + if(units.equals("feet")) { + msu = MS_UNITS.MS_FEET; + } + else if(units.equals("inches")) { + msu = MS_UNITS.MS_INCHES; + } + else if(units.equals("kilometers")) { + msu = MS_UNITS.MS_KILOMETERS; + } + else if(units.equals("meters")) { + msu = MS_UNITS.MS_METERS; + } + else if(units.equals("miles")) { + msu = MS_UNITS.MS_MILES; + } + else if(units.equals("nauticalmiles")) { + msu = MS_UNITS.MS_NAUTICALMILES; + } + else if(units.equals("points")) { + msu = MS_UNITS.MS_PIXELS; + } + else { + msu = MS_UNITS.MS_METERS; + } + map.setUnits(msu); + + //TODO: Find out whats the correct scale value. + //map.setScaledenom(Double.parseDouble(mapNode.getAttribute("scale"))); + } + + /** + * Create layer objects and set the attributes. + */ + private void writeLayer() { + logger.debug("writeLayer()"); + Element mapNode = (Element)XMLUtils.xpath( + root, + "/mxd/map", + XPathConstants.NODE); + NodeList list = mapNode.getElementsByTagName("layer"); + for(int i = 0; i < list.getLength(); i++) { + Element layerElement = (Element)list.item(i); + layerObj layer = new layerObj(map); + + //The layer name. + String lname = layerElement.getAttribute("name"); + lname = lname.replaceAll(" ", ""); + layer.setName(lname); + layer.setMetaData("wms_title", layerElement.getAttribute("name")); + + //The layer status. + String stat = layerElement.getAttribute("status"); + if (stat.equals("on")) { + layer.setStatus(1); + } + else { + layer.setStatus(0); + } + + //The scale. + double maxScale = 0; + double minScale = 0; + try { + maxScale = + Double.parseDouble(layerElement.getAttribute("max_scale")); + minScale = + Double.parseDouble(layerElement.getAttribute("min_scale")); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting scale."); + maxScale = 0; + minScale = 0; + } + layer.setMaxscaledenom(maxScale); + layer.setMinscaledenom(minScale); + + //The layer type. + String type = layerElement.getAttribute("type"); + if(type.equals("point")) { + layer.setType(MS_LAYER_TYPE.MS_LAYER_POINT); + } + else if (type.equals("line")) { + layer.setType(MS_LAYER_TYPE.MS_LAYER_LINE); + } + else if (type.equals("polygon")) { + layer.setType(MS_LAYER_TYPE.MS_LAYER_POLYGON); + } + layer.setTileitem(""); + + //The layer datasource. + String con_type = layerElement.getAttribute("connection_type"); + if(con_type.equals("local")) { + String datasource = ""; + if(layerElement.hasAttribute("workspace")) { + datasource = layerElement.getAttribute("workspace"); + datasource += File.separator; + } + datasource += layerElement.getAttribute("data_source"); + layer.setData(datasource); + } + else if(con_type.equals("SDE")) { + logger.info( + "SDE datasource found." + + " Please edit password in mapfile."); + layer.setConnectionType( + MS_CONNECTION_TYPE.MS_PLUGIN.swigValue(), + MS_BINDIR + "/ms/plugins/msplugin_sde_93.dll"); + layer.setConnection( + layerElement.getAttribute("server") + "," + + "port:" + layerElement.getAttribute("instance") + "," + + layerElement.getAttribute("database") + "," + + layerElement.getAttribute("user") + ","); + layer.setData( + layerElement.getAttribute("data_source") + + ",SHAPE," + + layerElement.getAttribute("version")); + layer.setProcessing("CLOSE_CONNECTION=defer"); + layer.setProcessing("ATTRIBUTE_QUALIFIED=TRUE"); + if(layerElement.hasAttribute("join_table")) { + layer.setProcessing( + "JOINTABLE=" + + layerElement.getAttribute("join_table")); + layer.setFilter( + "where " + + layerElement.getAttribute("definition_query") + + " AND " + + layerElement.getAttribute("join_table_target") + "." + + layerElement.getAttribute("join_field_target") + "=" + + layerElement.getAttribute("join_table") + "." + + layerElement.getAttribute("join_field")); + } + else { + prefix = layerElement.getAttribute("data_source"); + } + } + layer.setTemplate("PleaseInsertAValidTemplateForGFI"); + //Write classes. + writeClass(layer, layerElement); + } + + } + + /** + * Adds the classes to the layer. + * @param layer Mapscript layer object. + * @param layerElement Dom element containing the class attributes. + */ + private void writeClass(layerObj layer, Element layerElement) { + logger.debug("writeClass(layerObj, Element)"); + //Get all renderer elements (renderer in arcgis equals class in the + //mapfile.) + NodeList list = layerElement.getElementsByTagName("renderer"); + + //Create all found class objects and write the symbols and styles for + //each class. + for(int i = 0; i < list.getLength(); i++) { + Element classElement = (Element)list.item(i); + classObj co = new classObj(layer); + String name = classElement.getAttribute("label"); + if (name.equals("")) { + name = layerElement.getAttribute("name"); + if (list.getLength() > 1) { + name += "-" + i; + } + } + co.setName (name); + if(classElement.hasAttribute("field_count")) { + co.setExpression(createExpression(classElement)); + } + //Write symbols and styles. + NodeList l = classElement.getChildNodes(); + for (int j = l.getLength() - 1; j >= 0; j--) { + Element elem = (Element)l.item(j); + + String type = layerElement.getAttribute("type"); + if(type.equals("point") && elem.getTagName().equals("symbol")) { + MarkerStyleWriter swriter = new MarkerStyleWriter (this.map, co); + swriter.write (elem); + } + else if(type.equals("line") && elem.getTagName().equals("symbol")) { + LineStyleWriter swriter = new LineStyleWriter (this.map, co); + swriter.write (elem); + } + else if(type.equals("polygon") && elem.getTagName().equals("symbol")) { + FillStyleWriter swriter = new FillStyleWriter (this.map, co); + swriter.write (elem); + } + } + } + } + + + private String createExpression(Element ce) { + String expression = "("; + int count = 0; + try { + count = Integer.parseInt(ce.getAttribute("field_count")); + } + catch(NumberFormatException nfe) { + return ""; + } + if(count == 1) { + try { + Double.parseDouble(ce.getAttribute("value")); + String exp = ce.getAttribute("expression_field_0"); + String pre = ""; + if (!prefix.equals("") && !exp.startsWith(prefix)) { + pre = prefix + "."; + } + expression += "[" + pre; + expression += ce.getAttribute("expression_field_0") + "]"; + if(ce.hasAttribute("min_value")) { + expression += " > " + ce.getAttribute("min_value"); + expression += " AND ["; + expression += ce.getAttribute("expression_field_0")+ "]"; + } + expression += " " + ce.getAttribute("expression_operator"); + expression += " " + ce.getAttribute("value") + ")"; + } + catch(NumberFormatException nfe) { + String exp = ce.getAttribute("expression_field_0"); + String pre = ""; + if (!prefix.equals("") && !exp.startsWith(prefix)) { + pre = prefix + "."; + } + expression += "\"[" + pre; + expression += ce.getAttribute("expression_field_0") + "]\""; + expression += " " + ce.getAttribute("expression_operator"); + expression += " \"" + ce.getAttribute("value") + "\")"; + } + catch(Exception e) { + e.printStackTrace(); + } + } + else { + for (int i = 0; i < count; i++) { + try { + Double.parseDouble(ce.getAttribute("value_" + i)); + String exp = ce.getAttribute("expression_field_" + i); + String pre = ""; + if (!prefix.equals("") && !exp.startsWith(prefix)) { + pre = prefix + "."; + } + expression += "[" + pre; + expression += ce.getAttribute("expression_field_" + i) + "]"; + expression += " " + ce.getAttribute("expression_operator"); + expression += " " + ce.getAttribute("value_" + i); + if (i < count - 1) { + expression += " AND "; + } + else { + expression += ")"; + } + } + catch (NumberFormatException nfe) { + String exp = ce.getAttribute("expression_field_" + i); + String pre = ""; + if (!prefix.equals("") && !exp.startsWith(prefix)) { + pre = prefix + "."; + } + expression += "\"[" + pre; + expression += ce.getAttribute("expression_field_" + i) + "]\""; + expression += " " + ce.getAttribute("expression_operator"); + expression += " " + ce.getAttribute("value_" + i); + if (i < count - 1) { + expression += " AND "; + } + else { + expression += ")"; + } + } + } + } + return expression; + } +} + diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/writer/MarkerStyleWriter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/writer/MarkerStyleWriter.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,108 @@ +package de.intevation.mxd.writer; + +import java.awt.Color; + +import org.apache.log4j.Logger; + +import org.w3c.dom.Element; + +import edu.umn.gis.mapscript.mapObj; +import edu.umn.gis.mapscript.classObj; +import edu.umn.gis.mapscript.styleObj; +import edu.umn.gis.mapscript.colorObj; +import edu.umn.gis.mapscript.symbolSetObj; + + +/** + * The interface to the mapfile writer. + * + * @author Raimund Renkert + */ +public class MarkerStyleWriter { + + /** + * The Logger. + */ + private static final Logger logger = Logger.getLogger(MarkerStyleWriter.class); + + private mapObj map; + private classObj cl; + private styleObj style; + + public MarkerStyleWriter (mapObj map, classObj cl) { + this.map = map; + this.cl = cl; + this.style = new styleObj(cl); + } + + /** + * Write the content. + */ + public boolean write(Element symbolElement) { + logger.debug("write(Element)"); + symbolSetObj symbolSet = map.getSymbolset(); + + if (symbolElement.hasAttribute("angle")) { + try { + style.setAngle( + Double.parseDouble(symbolElement.getAttribute("angle"))); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting angle."); + style.setAngle(0.0); + } + } + if(symbolElement.hasAttribute("color")) { + String c = symbolElement.getAttribute("color"); + Color col = Color.decode(c); + colorObj color = new colorObj( + col.getRed(), + col.getGreen(), + col.getBlue(), + -4); + style.setColor(color); + } + if (symbolElement.hasAttribute ("size")) { + try { + style.setSize(Double.parseDouble( + symbolElement.getAttribute("size"))); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting size. Setting to deafult: 1."); + style.setSize(1); + } + } + if(symbolElement.hasAttribute("outline_color")) { + Color oCol = Color.decode( + symbolElement.getAttribute("outline_color")); + colorObj outlineColor = new colorObj( + oCol.getRed(), + oCol.getGreen(), + oCol.getBlue(), + -4); + style.setOutlinecolor(outlineColor); + try { + style.setOutlinewidth(Double.parseDouble( + symbolElement.getAttribute("outline_size"))); + } + catch(NumberFormatException nfe) { + logger.warn("Error setting outline width."); + } + } + String symType = symbolElement.getAttribute("style"); + if(symType.equals("point") || + symType.equals("arrow") || + symType.equals("char")) { + SymbolWriter sw = new SymbolWriter(this.map, this.cl); + sw.write(symbolElement); + } + else { + return false; + } + String name = symbolElement.getAttribute("name"); + style.setSymbolByName(map, name); + + return true; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 src/java/de/intevation/mxd/writer/SymbolWriter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/writer/SymbolWriter.java Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,200 @@ +package de.intevation.mxd.writer; + +import org.apache.log4j.Logger; + +import org.w3c.dom.Element; + +import edu.umn.gis.mapscript.mapObj; +import edu.umn.gis.mapscript.classObj; +import edu.umn.gis.mapscript.styleObj; +import edu.umn.gis.mapscript.symbolObj; +import edu.umn.gis.mapscript.symbolSetObj; +import edu.umn.gis.mapscript.lineObj; +import edu.umn.gis.mapscript.pointObj; +import edu.umn.gis.mapscript.MS_SYMBOL_TYPE; + + +/** + * The interface to the mapfile writer. + * + * @author Raimund Renkert + */ +public class SymbolWriter { + + /** + * The Logger. + */ + private static final Logger logger = Logger.getLogger(SymbolWriter.class); + + private mapObj map; + private classObj cl; + private styleObj style; + + public SymbolWriter (mapObj map, classObj cl) { + this.map = map; + this.cl = cl; + this.style = new styleObj(cl); + } + + /** + * Write the content. + */ + public boolean write(Element symbolElement) { + logger.debug("write(Element)"); + symbolSetObj symbolSet = map.getSymbolset(); + + String name = symbolElement.getAttribute("name"); + symbolObj sym = symbolSet.getSymbolByName(name); + String symType = symbolElement.getAttribute("style"); + String type = symbolElement.getAttribute("type"); + if(symType.equals("point")) { + writeSimple(sym); + } + else if (symType.equals("arrow")) { + writeArrow(sym, symbolElement); + } + else if (symType.equals("char")) { + int exists = symbolExists(symbolElement); + if(exists == -1) { + String old = symbolElement.getAttribute("name"); + symbolElement.setAttribute( + "name", + old + symbolSet.getNumsymbols() + 1); + writeCharacter(sym, symbolElement); + } + else { + symbolElement.setAttribute( + "name", + symbolSet.getSymbol(exists).getName()); + } + } + else if (type.equals("line")) { + writeHatch(sym); + } + else { + return false; + } + + try { + saveSymbolSet(symbolSet); + } + catch(Exception e) { + logger.error("Error saving symbol set."); + return false; + } + + return true; + } + + private void writeSimple(symbolObj symbol) { + logger.debug("writeSimple(symbolObj)"); + lineObj points = new lineObj(); + points.add(new pointObj(1,1,0)); + symbol.setType(MS_SYMBOL_TYPE.MS_SYMBOL_ELLIPSE.swigValue()); + symbol.setPoints(points); + symbol.setFilled(1); + } + + private void writeArrow(symbolObj symbol, Element symbolElement) { + logger.debug("writeArrow(symbolObj, Element)"); + double len = 0; + double width = 1; + try { + len = + Double.parseDouble(symbolElement.getAttribute("length")); + width = + Double.parseDouble(symbolElement.getAttribute("width")); + } + catch(NumberFormatException nfe) { + logger.warn ("Error setting arrow symbol."); + return; + } + double ratio = len/width; + lineObj points = new lineObj(); + + points.add(new pointObj(0, 0, 0)); + points.add(new pointObj((1*ratio), 0.5, 0)); + points.add(new pointObj(0, 1, 0)); + points.add(new pointObj(0, 0, 0)); + symbol.setType(MS_SYMBOL_TYPE.MS_SYMBOL_VECTOR.swigValue()); + symbol.setPoints(points); + symbol.setFilled(1); + } + + private void writeCharacter(symbolObj symbol, Element symbolElement) { + logger.debug("writeCharacter(symbolObj, Element)"); + //TODO Write the symbol correctly. See Issue 3885 on trac.osgeo.org + String font = symbolElement.getAttribute("font"); + //Remove all blank character to match the mapserver fonts.txt. + font = font.replaceAll(" ", ""); + symbol.setName(symbolElement.getAttribute("name")); + symbol.setFont(font); + symbol.setType(MS_SYMBOL_TYPE.MS_SYMBOL_TRUETYPE.swigValue()); + symbol.setAntialias(1); + symbol.setCharacter("&#" + symbolElement.getAttribute("char") + ";"); + } + + private void writeHatch(symbolObj symbol) { + logger.debug("writeHatch(symbolObj)"); + symbol.setType(MS_SYMBOL_TYPE.MS_SYMBOL_HATCH.swigValue()); + } + + public boolean canWrite(String type) { + if (type.equals("point") || + type.equals("arrow") || + type.equals("char") || + type.equals("line")) { + return true; + } + else { + return false; + } + } + + private void saveSymbolSet(symbolSetObj symbols) + throws Exception { + String path = this.map.getMappath(); + if(path.equals("")) { + return; + } + else { + path += "symbols.sym"; + } + symbols.save(path); + } + + private int symbolExists (Element elem) { + symbolSetObj symbolSet = map.getSymbolset(); + for (int i = 0; i < symbolSet.getNumsymbols(); i++) { + symbolObj sym = symbolSet.getSymbol(i); + int stype = sym.getType(); + String etype = elem.getAttribute("style"); + if(stype == MS_SYMBOL_TYPE.MS_SYMBOL_ELLIPSE.swigValue () && + etype.equals("point")) { + return i; + } + else if(stype == MS_SYMBOL_TYPE.MS_SYMBOL_VECTOR.swigValue () && + etype.equals("arrow")) { + return i; + } + else if(stype == MS_SYMBOL_TYPE.MS_SYMBOL_TRUETYPE.swigValue () && + etype.equals("char")) { + String font = elem.getAttribute("font"); + font = font.replaceAll(" ", ""); + String c = elem.getAttribute("char"); + c = "&#" + c + ";"; + if (font.equals(sym.getFont()) && + c.equals(sym.getCharacter())) { + return i; + } + + } + else if(stype == MS_SYMBOL_TYPE.MS_SYMBOL_HATCH.swigValue () && + etype.equals("hatch")) { + return i; + } + } + return -1; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/COPYING --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testdata-frida/COPYING Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,11 @@ +The Free Vector GeoData Osnabrück (Frida) is +Copyright (C) by Intevation GmbH and licensed +under the GNU General Public License (see COPYING.GPL). + +Additional license agreement: + +The GNU GPL has been chosen because no analog license +for geographic data does yet exists. +If in the future the Free Software Foundation Europe +officially accepts a Geographic Data license as to be analog +to the GNU GPL, Frida may be upgraded to this new license. diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/COPYING.GPL --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testdata-frida/COPYING.GPL Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testdata-frida/README Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,20 @@ +This archive contains the Shapefile-formatted version of the + + Frida: Free Vector-Geodata Osnabrück + +Class attributes are in separate .dbf-files and can be joined to +the .shp-files via corresponding IDs. + +Finally there is a .thuban-file for displaying all shapefiles +quickly. You need to have Thuban installed on your system for this. + + +The contents of this archive is not regarded as the sources, +visit the homepage to get the actual source files. + +For the license see file COPYING. + +Read here for more: + + frida.intevation.org + thuban.intevation.org diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gewaesserflaechen.dbf Binary file testdata-frida/gewaesserflaechen.dbf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gewaesserflaechen.prj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testdata-frida/gewaesserflaechen.prj Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,1 @@ +PROJCS["Transverse Mercator",GEOGCS["bessel",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["bessel",6377397.155,299.1528128],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.70]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0]] diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gewaesserflaechen.shp Binary file testdata-frida/gewaesserflaechen.shp has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gewaesserflaechen.shx Binary file testdata-frida/gewaesserflaechen.shx has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gewaesserlinien.dbf Binary file testdata-frida/gewaesserlinien.dbf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gewaesserlinien.shp Binary file testdata-frida/gewaesserlinien.shp has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gewaesserlinien.shx Binary file testdata-frida/gewaesserlinien.shx has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gewaesserlinien_namen.dbf Binary file testdata-frida/gewaesserlinien_namen.dbf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gruenflaechen.dbf Binary file testdata-frida/gruenflaechen.dbf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gruenflaechen.prj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testdata-frida/gruenflaechen.prj Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,1 @@ +PROJCS["Transverse Mercator",GEOGCS["bessel",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["bessel",6377397.155,299.1528128],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.70]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0]] diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gruenflaechen.shp Binary file testdata-frida/gruenflaechen.shp has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gruenflaechen.shx Binary file testdata-frida/gruenflaechen.shx has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/gruenflaechen_typen.dbf Binary file testdata-frida/gruenflaechen_typen.dbf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/overview.thuban --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testdata-frida/overview.thuban Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/poi.dbf Binary file testdata-frida/poi.dbf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/poi.prj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testdata-frida/poi.prj Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,1 @@ +PROJCS["Transverse Mercator",GEOGCS["bessel",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["bessel",6377397.155,299.1528128],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.70]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0]] diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/poi.shp Binary file testdata-frida/poi.shp has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/poi.shx Binary file testdata-frida/poi.shx has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/poi_typen.dbf Binary file testdata-frida/poi_typen.dbf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/strassen.dbf Binary file testdata-frida/strassen.dbf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/strassen.prj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testdata-frida/strassen.prj Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,1 @@ +PROJCS["Transverse Mercator",GEOGCS["bessel",DATUM["Deutsches_Hauptdreiecksnetz",SPHEROID["bessel",6377397.155,299.1528128],TOWGS84[598.1,73.7,418.2,0.202,0.045,-2.455,6.70]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",9],PARAMETER["scale_factor",1],PARAMETER["false_easting",3500000],PARAMETER["false_northing",0]] diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/strassen.shp Binary file testdata-frida/strassen.shp has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/strassen.shx Binary file testdata-frida/strassen.shx has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/strassen_namen.dbf Binary file testdata-frida/strassen_namen.dbf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 testdata-frida/strassen_typen.dbf Binary file testdata-frida/strassen_typen.dbf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/DejaVuSans.ttf Binary file ttf-fonts/DejaVuSans.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_1.ttf Binary file ttf-fonts/esri_1.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_105.ttf Binary file ttf-fonts/esri_105.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_11.ttf Binary file ttf-fonts/esri_11.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_12.ttf Binary file ttf-fonts/esri_12.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_121.ttf Binary file ttf-fonts/esri_121.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_13.ttf Binary file ttf-fonts/esri_13.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_130.ttf Binary file ttf-fonts/esri_130.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_131.ttf Binary file ttf-fonts/esri_131.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_132.ttf Binary file ttf-fonts/esri_132.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_133.ttf Binary file ttf-fonts/esri_133.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_14.ttf Binary file ttf-fonts/esri_14.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_144.ttf Binary file ttf-fonts/esri_144.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_149.ttf Binary file ttf-fonts/esri_149.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_15.ttf Binary file ttf-fonts/esri_15.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_150.ttf Binary file ttf-fonts/esri_150.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_151.ttf Binary file ttf-fonts/esri_151.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_152.ttf Binary file ttf-fonts/esri_152.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_153.ttf Binary file ttf-fonts/esri_153.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_159.ttf Binary file ttf-fonts/esri_159.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_16.ttf Binary file ttf-fonts/esri_16.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_160.ttf Binary file ttf-fonts/esri_160.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_161.ttf Binary file ttf-fonts/esri_161.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_17.ttf Binary file ttf-fonts/esri_17.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_19.ttf Binary file ttf-fonts/esri_19.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_2.ttf Binary file ttf-fonts/esri_2.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_20.ttf Binary file ttf-fonts/esri_20.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_21.ttf Binary file ttf-fonts/esri_21.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_216.ttf Binary file ttf-fonts/esri_216.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_22.ttf Binary file ttf-fonts/esri_22.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_220.ttf Binary file ttf-fonts/esri_220.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_221.ttf Binary file ttf-fonts/esri_221.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_222.ttf Binary file ttf-fonts/esri_222.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_223.ttf Binary file ttf-fonts/esri_223.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_224.ttf Binary file ttf-fonts/esri_224.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_225.ttf Binary file ttf-fonts/esri_225.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_23.ttf Binary file ttf-fonts/esri_23.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_24.ttf Binary file ttf-fonts/esri_24.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_25.ttf Binary file ttf-fonts/esri_25.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_26.ttf Binary file ttf-fonts/esri_26.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_27Mcr_2.ttf Binary file ttf-fonts/esri_27Mcr_2.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_29.ttf Binary file ttf-fonts/esri_29.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_3.ttf Binary file ttf-fonts/esri_3.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_30s.ttf Binary file ttf-fonts/esri_30s.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_33.ttf Binary file ttf-fonts/esri_33.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_34.ttf Binary file ttf-fonts/esri_34.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_375.ttf Binary file ttf-fonts/esri_375.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_376.ttf Binary file ttf-fonts/esri_376.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_377.ttf Binary file ttf-fonts/esri_377.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_39.ttf Binary file ttf-fonts/esri_39.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_4.ttf Binary file ttf-fonts/esri_4.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_40.ttf Binary file ttf-fonts/esri_40.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_400.ttf Binary file ttf-fonts/esri_400.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_405.ttf Binary file ttf-fonts/esri_405.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_406.ttf Binary file ttf-fonts/esri_406.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_44.ttf Binary file ttf-fonts/esri_44.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_47.ttf Binary file ttf-fonts/esri_47.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_48.ttf Binary file ttf-fonts/esri_48.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_49.ttf Binary file ttf-fonts/esri_49.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_5.ttf Binary file ttf-fonts/esri_5.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_500.ttf Binary file ttf-fonts/esri_500.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_651.ttf Binary file ttf-fonts/esri_651.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_652.ttf Binary file ttf-fonts/esri_652.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_7.ttf Binary file ttf-fonts/esri_7.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_730.ttf Binary file ttf-fonts/esri_730.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_8.ttf Binary file ttf-fonts/esri_8.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_800.ttf Binary file ttf-fonts/esri_800.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_801.ttf Binary file ttf-fonts/esri_801.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_802.ttf Binary file ttf-fonts/esri_802.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_803.ttf Binary file ttf-fonts/esri_803.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_804.ttf Binary file ttf-fonts/esri_804.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_832.ttf Binary file ttf-fonts/esri_832.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_837.ttf Binary file ttf-fonts/esri_837.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/esri_9.ttf Binary file ttf-fonts/esri_9.ttf has changed diff -r 1618d68cb723 -r 3ac0968e26f3 ttf-fonts/fonts.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ttf-fonts/fonts.txt Thu Jun 30 12:40:27 2011 +0200 @@ -0,0 +1,77 @@ +# Make sure that your alias-names do _not_ contain spaces since the +# parser dies not handle that correctly. +# FreeSans is a default fallback-font. +FreeSans DejaVuSans.ttf +ESRIMeteorological01 esri_105.ttf +ESRIDefaultMarker esri_11.ttf +ESRIOrdnanceSurvey esri_121.ttf +ESRINIMADNCPT esri_12.ttf +ESRISDS1.951 esri_130.ttf +ESRISDS1.952 esri_131.ttf +ESRISDS2.001 esri_132.ttf +ESRISDS2.002 esri_133.ttf +ESRINIMADNCLN esri_13.ttf +ESRIArrowhead esri_144.ttf +ESRISurveyor esri_149.ttf +ESRINIMAVMAP1&2PT esri_14.ttf +ESRIAMFMElectric esri_150.ttf +ESRIAMFMGas esri_151.ttf +ESRIAMFMSewer esri_152.ttf +ESRIAMFMWater esri_153.ttf +ESRIHydrants esri_159.ttf +ESRINIMAVMAP1&2LN esri_15.ttf +ESRITelecom esri_160.ttf +ESRIPipelineUS1 esri_161.ttf +ESRINIMACityGraphicPT esri_16.ttf +ESRINIMACityGraphicLN esri_17.ttf +ESRIMilMod02 esri_19.ttf +ESRICartography esri_1.ttf +ESRIMilRed01 esri_20.ttf +ESRIIGLFont16 esri_216.ttf +ESRIMilSym01 esri_21.ttf +ESRIIGLFont20 esri_220.ttf +ESRIIGLFont21 esri_221.ttf +ESRIIGLFont22 esri_222.ttf +ESRIIGLFont23 esri_223.ttf +ESRIIGLFont24 esri_224.ttf +ESRIIGLFont25 esri_225.ttf +ESRIMilSym02 esri_22.ttf +ESRIMilSym03 esri_23.ttf +ESRIMilSym04 esri_24.ttf +ESRIMilSym05 esri_25.ttf +ESRIMilMod01 esri_26.ttf +ESRIMil2525CModifiers esri_27Mcr_2.ttf +ESRIPublic1 esri_29.ttf +ESRIEnvironmental&Icons esri_2.ttf +ESRIArcPad esri_30s.ttf +ESRIClimate&Precipitation esri_33.ttf +ESRIBusiness esri_34.ttf +ESRICaves1 esri_375.ttf +ESRICaves2 esri_376.ttf +ESRICaves3 esri_377.ttf +ESRIDimensioning esri_39.ttf +ESRIGeometricSymbols esri_3.ttf +ESRIGeologyUSGS95-525 esri_400.ttf +ESRIElements esri_405.ttf +ESRICommodities esri_406.ttf +ESRINorth esri_40.ttf +ESRIShields esri_44.ttf +ESRIUSMUTCD1 esri_47.ttf +ESRIUSMUTCD2 esri_48.ttf +ESRIUSMUTCD3 esri_49.ttf +ESRIOilGasWater esri_4.ttf +ESRIGeologyAGSO1 esri_500.ttf +ESRIWeather esri_5.ttf +ESRIUSForestry1 esri_651.ttf +ESRIUSForestry2 esri_652.ttf +ESRIConservation esri_730.ttf +ESRIGeology esri_7.ttf +ESRIEnviroHazardIncident esri_800.ttf +ESRIEnviroHazardAnalysis esri_801.ttf +ESRIEnviroHazardSites esri_802.ttf +ESRIHazardousMaterials esri_803.ttf +ESRIFireIncidentNFPA esri_804.ttf +ESRIERSInfrastructuresS1 esri_832.ttf +ESRIERSOperationsS1 esri_837.ttf +ESRICrimeAnalysis esri_8.ttf +ESRITransportationCivic esri_9.ttf