source: proto/gml2svg/lib/stylesheets/xslt/DoubleTrack.xslt @ 1703

Last change on this file since 1703 was 1703, checked in by ksherdy, 8 years ago

Added gml2svg prototypes.

  • Property svn:executable set to *
File size: 6.9 KB
Line 
1<xsl:transform version="2.0" xmlns:Extfun="/org.opengis.gml.StyleExt" xmlns:fs="http://www.galdosinc.com/fs" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:pre1="http://www.galdosinc.com/vancouver" xmlns:sld="http://www.opengis.net/sld" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2  <xsl:output indent="yes"/>
3  <xsl:param name="width">800</xsl:param>
4  <xsl:param name="height">800</xsl:param>
5  <xsl:param name="bbox"/>
6  <xsl:param name="tooltipInfo">true</xsl:param>
7  <xsl:param name="tooltipEvents">false</xsl:param>
8  <xsl:param name="tooltipHandler">false</xsl:param>
9  <xsl:param name="svgProfile">full</xsl:param>
10  <xsl:template match="/">
11    <xsl:element name="svg" namespace="http://www.w3.org/2000/svg">
12      <xsl:attribute name="width">
13        <xsl:value-of select="$width"/>
14      </xsl:attribute>
15      <xsl:attribute name="height">
16        <xsl:value-of select="$height"/>
17      </xsl:attribute>
18      <xsl:apply-templates mode="Line" select="//pre1:DoubleTrack/gml:centerLineOf"/>
19    </xsl:element>
20  </xsl:template>
21  <!--==================================================================-->
22  <xsl:template match="pre1:DoubleTrack/gml:centerLineOf" mode="Line">
23    <xsl:element name="path" namespace="http://www.w3.org/2000/svg">
24      <xsl:attribute name="id">
25        <xsl:value-of select="../@gml:id"/>
26      </xsl:attribute>
27      <xsl:attribute name="style">
28        <xsl:text>stroke-width:</xsl:text>
29        <xsl:text>0.5</xsl:text>
30        <xsl:text>;</xsl:text>
31        <xsl:text>stroke:</xsl:text>
32        <xsl:text>rgb(69,34,118)</xsl:text>
33        <xsl:text>;</xsl:text>
34        <xsl:text>fill:none;</xsl:text>
35      </xsl:attribute>
36      <xsl:attribute name="d">
37        <xsl:choose>
38          <xsl:when test=".//gml:posList">
39            <xsl:apply-templates mode="Path" select=".//gml:posList"/>
40          </xsl:when>
41          <xsl:otherwise>
42            <xsl:apply-templates mode="Path" select=".//gml:coordinates"/>
43          </xsl:otherwise>
44        </xsl:choose>
45      </xsl:attribute>
46      <xsl:if test="$tooltipEvents = 'true' and $svgProfile != 'tiny'">
47        <xsl:choose>
48          <xsl:when test="$tooltipHandler = 'true'">
49            <xsl:attribute name="onmouseover">showTooltip(evt)</xsl:attribute>
50            <xsl:attribute name="onmouseout">hideTooltip(evt)</xsl:attribute>
51          </xsl:when>
52          <xsl:otherwise>
53            <xsl:attribute name="onmouseover">try{top.showTooltip(evt)}catch(e){}</xsl:attribute>
54            <xsl:attribute name="onmouseout">try{top.hideTooltip(evt)}catch(e){}</xsl:attribute>
55          </xsl:otherwise>
56        </xsl:choose>
57      </xsl:if>
58      <xsl:if test="$tooltipInfo = 'true' and $svgProfile != 'tiny'">
59        <xsl:element name="fs:tooltip">
60          <xsl:if test="ancestor::*[@gml:id]">
61            <xsl:value-of select="ancestor::*[@gml:id]/@gml:id"/>
62          </xsl:if>
63        </xsl:element>
64      </xsl:if>
65    </xsl:element>
66  </xsl:template>
67  <!--===================================================================-->
68  <xsl:variable name="boundingBox">
69    <xsl:choose>
70      <xsl:when test="$bbox != ''">
71        <xsl:value-of select="$bbox"/>
72      </xsl:when>
73      <xsl:when test="/*/gml:boundedBy/*/gml:upperCorner != ''">
74        <xsl:value-of select="replace(/*/gml:boundedBy/*/gml:lowerCorner, ' ', ',')"/>
75        <xsl:text>&amp;#32;</xsl:text>
76        <xsl:value-of select="replace(/*/gml:boundedBy/*/gml:upperCorner, ' ', ',')"/>
77      </xsl:when>
78      <xsl:otherwise>
79        <xsl:value-of select="/*/gml:boundedBy/*/gml:coordinates"/>
80      </xsl:otherwise>
81    </xsl:choose>
82  </xsl:variable>
83  <!--===================================================================-->
84  <xsl:variable name="sumY">
85    <xsl:value-of select="Extfun:getSumY($boundingBox, @decimal, @cs, @ts)"/>
86  </xsl:variable>
87  <!--===================================================================-->
88  <xsl:variable name="scaleX">
89    <xsl:value-of select="Extfun:getScaleX(string($width),$boundingBox,@decimal,@cs,@ts)"/>
90  </xsl:variable>
91  <!--===================================================================-->
92  <xsl:variable name="scaleY">
93    <xsl:value-of select="Extfun:getScaleY(string($height),$boundingBox,@decimal,@cs,@ts)"/>
94  </xsl:variable>
95  <!--===================================================================-->
96  <xsl:variable name="x1">
97    <xsl:value-of select="Extfun:getX1($boundingBox,@decimal,@cs,@ts)"/>
98  </xsl:variable>
99  <!--===================================================================-->
100  <xsl:variable name="y1">
101    <xsl:value-of select="Extfun:getY1($boundingBox,@decimal,@cs,@ts)"/>
102  </xsl:variable>
103  <!--===================================================================-->
104  <xsl:template match="gml:pos" mode="PointX">
105    <xsl:value-of select="Extfun:getPointX($scaleX,$x1,string(text()),@decimal,' ')"/>
106  </xsl:template>
107  <!--===================================================================-->
108  <xsl:template match="gml:pos" mode="PointY">
109    <xsl:value-of select="Extfun:getPointY($sumY,$scaleY,$y1,string(text()),@decimal,' ')"/>
110  </xsl:template>
111  <!--===================================================================-->
112  <xsl:template match="gml:posList" mode="Path">
113    <xsl:value-of select="Extfun:convertPosListToPath($sumY, $scaleX, $scaleY,$x1,$y1,string(text()),@decimal,'','')"/>
114  </xsl:template>
115  <!--===================================================================-->
116  <xsl:template match="gml:coordinates" mode="PointX">
117    <xsl:value-of select="Extfun:getPointX($scaleX,$x1,string(text()),@decimal,@cs)"/>
118  </xsl:template>
119  <!--===================================================================-->
120  <xsl:template match="gml:coordinates" mode="PointY">
121    <xsl:value-of select="Extfun:getPointY($sumY,$scaleY,$y1,string(text()),@decimal,@cs)"/>
122  </xsl:template>
123  <!--===================================================================-->
124  <xsl:template match="gml:coordinates" mode="Path">
125    <xsl:value-of select="Extfun:convertCoordinatesToPath($sumY, $scaleX, $scaleY,$x1,$y1,string(text()),@decimal,@cs,@ts)"/>
126  </xsl:template>
127  <!--===================================================================-->
128  <xsl:function name="fs:coordinates">
129    <xsl:param name="context"/>
130    <xsl:variable name="coordinates">
131      <xsl:for-each select="$context//gml:coordinates">
132        <xsl:value-of select="."/>
133        <xsl:choose>
134          <xsl:when test="@ts != '' ">
135            <xsl:value-of select="@ts"/>
136          </xsl:when>
137          <xsl:otherwise>
138            <xsl:text/>
139          </xsl:otherwise>
140        </xsl:choose>
141      </xsl:for-each>
142    </xsl:variable>
143    <xsl:value-of select="Extfun:convertCoordinatesToPath($sumY, $scaleX, $scaleY,$x1,$y1,string($coordinates),$context/@decimal,$context/@cs,$context/@ts)"/>
144  </xsl:function>
145  <!--===================================================================-->
146</xsl:transform>
Note: See TracBrowser for help on using the repository browser.