Mercurial > dive4elements > gnv-client
diff gnv-artifacts/contrib/palette2qgis.xsl @ 875:5e9efdda6894
merged gnv-artifacts/1.0
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 28 Sep 2012 12:13:56 +0200 |
parents | a8f6ca59b26e |
children | f953c9a559d8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/contrib/palette2qgis.xsl Fri Sep 28 12:13:56 2012 +0200 @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <!-- + palette2qgis.xsl + ================ + Transforms palette XML files into QGIS style files. Useful + to display "Horizontalschnitte" with the right colors. + + Tested with Quantum GIS 1.4.0-Enceladus. + + usage: xsltproc palette2qgis.xsl palette.xml > style.qml + + Author: Sascha L. Teichmann (sascha.teichmann@intevation.de) + --> + <xsl:output + method="xml" + doctype-system="PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'"/> + + <xsl:template name="hex2number"> + <xsl:param name="hex"/> + <xsl:choose> + <xsl:when test="string-length($hex) < 1"> + <xsl:value-of select="0"/> + </xsl:when> + <xsl:otherwise> + <xsl:variable + name="x" + select="translate(substring($hex, string-length($hex), 1), 'ABCDEF', 'abcdef')"/> + <xsl:variable name="last"> + <xsl:choose> + <xsl:when test="$x = 'a'">10</xsl:when> + <xsl:when test="$x = 'b'">11</xsl:when> + <xsl:when test="$x = 'c'">12</xsl:when> + <xsl:when test="$x = 'd'">13</xsl:when> + <xsl:when test="$x = 'e'">14</xsl:when> + <xsl:when test="$x = 'f'">15</xsl:when> + <xsl:otherwise> + <xsl:value-of select="$x"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="rest"> + <xsl:call-template name="hex2number"> + <xsl:with-param + name="hex" + select="substring($hex, 1, string-length($hex)-1)"/> + </xsl:call-template> + </xsl:variable> + <xsl:value-of select="number($last) + 16*$rest"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="/ranges/range"> + <symbol> + <lowervalue><xsl:value-of select="@index"/></lowervalue> + <uppervalue><xsl:value-of select="@index"/></uppervalue> + <label><xsl:value-of select="@description"/></label> + <pointsymbol>hard:circle</pointsymbol> + <pointsize>2</pointsize> + <pointsizeunits>pixels</pointsizeunits> + <rotationclassificationfieldname/> + <scaleclassificationfieldname/> + <symbolfieldname/> + <outlinecolor red="0" blue="0" green="0"/> + <outlinestyle>NoPen</outlinestyle> + <outlinewidth>0.26</outlinewidth> + <xsl:variable name="rgb"> + <xsl:call-template name="hex2number"> + <xsl:with-param name="hex" select="substring(@rgb, 2)"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="red" select="floor(($rgb div (256*256)) mod 256)"/> + <xsl:variable name="green" select="floor(($rgb div 256) mod 256)"/> + <xsl:variable name="blue" select="floor($rgb mod 256)"/> + <fillcolor red="{$red}" blue="{$blue}" green="{$green}"/> + <fillpattern>SolidPattern</fillpattern> + <texturepath null="1"/> + </symbol> + </xsl:template> + <xsl:template match="/"> + <qgis version="1.4.0-Enceladus" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0"> + <transparencyLevelInt>255</transparencyLevelInt> + <classificationattribute>CLASS</classificationattribute> + <symbol> + <lowervalue null="1"/> + <uppervalue null="1"/> + <label>Andere</label> + <pointsymbol>hard:circle</pointsymbol> + <pointsize>2</pointsize> + <pointsizeunits>pixels</pointsizeunits> + <rotationclassificationfieldname/> + <scaleclassificationfieldname/> + <symbolfieldname/> + <outlinecolor red="0" blue="0" green="0"/> + <outlinestyle>DashDotDotLine</outlinestyle> + <outlinewidth>0.26</outlinewidth> + <fillcolor red="59" blue="81" green="179"/> + <fillpattern>SolidPattern</fillpattern> + <texturepath null="1"/> + </symbol> + <uniquevalue> + <classificationfield>CLASS</classificationfield> + <xsl:apply-templates/> + </uniquevalue> + <edittypes> + <edittype type="0" name="CLASS"/> + <edittype type="0" name="DATE"/> + <edittype type="0" name="LAYER"/> + <edittype type="0" name="PARAMETER"/> + </edittypes> + <editform/> + <editforminit/> + <displayfield>PARAMETER</displayfield> + <label>0</label> + <attributeactions/> + <labelattributes> + <label fieldname="" text="Beschriftung"/> + <family fieldname="" name="Sans Serif"/> + <size fieldname="" units="pt" value="12"/> + <bold fieldname="" on="0"/> + <italic fieldname="" on="0"/> + <underline fieldname="" on="0"/> + <color fieldname="" red="0" blue="0" green="0"/> + <x fieldname=""/> + <y fieldname=""/> + <offset x="0" y="0" units="pt" yfieldname="" xfieldname=""/> + <angle fieldname="" value="0" auto="0"/> + <alignment fieldname="" value="center"/> + <buffercolor fieldname="" red="255" blue="255" green="255"/> + <buffersize fieldname="" units="pt" value="1"/> + <bufferenabled fieldname="" on=""/> + <multilineenabled fieldname="" on=""/> + </labelattributes> + </qgis> + </xsl:template> + <xsl:template match="text()"/> +</xsl:stylesheet>