source: proto/gml2svg/lib/stylesheets/xslt/FireStation.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: 7.2 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="Polygon" select="//pre1:FireStation/gml:extentOf"/>
19    </xsl:element>
20  </xsl:template>
21  <!--==================================================================-->
22  <xsl:template match="pre1:FireStation/gml:extentOf" mode="Polygon">
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:</xsl:text>
29        <xsl:text>rgb(0,0,0)</xsl:text>
30        <xsl:text>;</xsl:text>
31        <xsl:if test="$svgProfile != 'tiny'">
32          <xsl:text>stroke-opacity:</xsl:text>
33          <xsl:text>1.0</xsl:text>
34          <xsl:text>;</xsl:text>
35        </xsl:if>
36        <xsl:text>fill:</xsl:text>
37        <xsl:text>rgb(255,0,0)</xsl:text>
38        <xsl:text>;</xsl:text>
39        <xsl:if test="$svgProfile != 'tiny'">
40          <xsl:text>fill-opacity:</xsl:text>
41          <xsl:text>1.0</xsl:text>
42          <xsl:text>;</xsl:text>
43        </xsl:if>
44      </xsl:attribute>
45      <xsl:attribute name="d">
46        <xsl:choose>
47          <xsl:when test=".//gml:posList">
48            <xsl:apply-templates mode="Path" select=".//gml:posList"/>
49          </xsl:when>
50          <xsl:otherwise>
51            <xsl:apply-templates mode="Path" select=".//gml:coordinates"/>
52          </xsl:otherwise>
53        </xsl:choose>
54      </xsl:attribute>
55      <xsl:if test="$tooltipEvents = 'true' and $svgProfile != 'tiny'">
56        <xsl:choose>
57          <xsl:when test="$tooltipHandler = 'true'">
58            <xsl:attribute name="onmouseover">showTooltip(evt)</xsl:attribute>
59            <xsl:attribute name="onmouseout">hideTooltip(evt)</xsl:attribute>
60          </xsl:when>
61          <xsl:otherwise>
62            <xsl:attribute name="onmouseover">try{top.showTooltip(evt)}catch(e){}</xsl:attribute>
63            <xsl:attribute name="onmouseout">try{top.hideTooltip(evt)}catch(e){}</xsl:attribute>
64          </xsl:otherwise>
65        </xsl:choose>
66      </xsl:if>
67      <xsl:if test="$tooltipInfo = 'true' and $svgProfile != 'tiny'">
68        <xsl:element name="fs:tooltip">
69          <xsl:if test="ancestor::*[@gml:id]">
70            <xsl:value-of select="ancestor::*[@gml:id]/@gml:id"/>
71          </xsl:if>
72        </xsl:element>
73      </xsl:if>
74    </xsl:element>
75  </xsl:template>
76  <!--===================================================================-->
77  <xsl:variable name="boundingBox">
78    <xsl:choose>
79      <xsl:when test="$bbox != ''">
80        <xsl:value-of select="$bbox"/>
81      </xsl:when>
82      <xsl:when test="/*/gml:boundedBy/*/gml:upperCorner != ''">
83        <xsl:value-of select="replace(/*/gml:boundedBy/*/gml:lowerCorner, ' ', ',')"/>
84        <xsl:text>&amp;#32;</xsl:text>
85        <xsl:value-of select="replace(/*/gml:boundedBy/*/gml:upperCorner, ' ', ',')"/>
86      </xsl:when>
87      <xsl:otherwise>
88        <xsl:value-of select="/*/gml:boundedBy/*/gml:coordinates"/>
89      </xsl:otherwise>
90    </xsl:choose>
91  </xsl:variable>
92  <!--===================================================================-->
93  <xsl:variable name="sumY">
94    <xsl:value-of select="Extfun:getSumY($boundingBox, @decimal, @cs, @ts)"/>
95  </xsl:variable>
96  <!--===================================================================-->
97  <xsl:variable name="scaleX">
98    <xsl:value-of select="Extfun:getScaleX(string($width),$boundingBox,@decimal,@cs,@ts)"/>
99  </xsl:variable>
100  <!--===================================================================-->
101  <xsl:variable name="scaleY">
102    <xsl:value-of select="Extfun:getScaleY(string($height),$boundingBox,@decimal,@cs,@ts)"/>
103  </xsl:variable>
104  <!--===================================================================-->
105  <xsl:variable name="x1">
106    <xsl:value-of select="Extfun:getX1($boundingBox,@decimal,@cs,@ts)"/>
107  </xsl:variable>
108  <!--===================================================================-->
109  <xsl:variable name="y1">
110    <xsl:value-of select="Extfun:getY1($boundingBox,@decimal,@cs,@ts)"/>
111  </xsl:variable>
112  <!--===================================================================-->
113  <xsl:template match="gml:pos" mode="PointX">
114    <xsl:value-of select="Extfun:getPointX($scaleX,$x1,string(text()),@decimal,' ')"/>
115  </xsl:template>
116  <!--===================================================================-->
117  <xsl:template match="gml:pos" mode="PointY">
118    <xsl:value-of select="Extfun:getPointY($sumY,$scaleY,$y1,string(text()),@decimal,' ')"/>
119  </xsl:template>
120  <!--===================================================================-->
121  <xsl:template match="gml:posList" mode="Path">
122    <xsl:value-of select="Extfun:convertPosListToPath($sumY, $scaleX, $scaleY,$x1,$y1,string(text()),@decimal,'','')"/>
123  </xsl:template>
124  <!--===================================================================-->
125  <xsl:template match="gml:coordinates" mode="PointX">
126    <xsl:value-of select="Extfun:getPointX($scaleX,$x1,string(text()),@decimal,@cs)"/>
127  </xsl:template>
128  <!--===================================================================-->
129  <xsl:template match="gml:coordinates" mode="PointY">
130    <xsl:value-of select="Extfun:getPointY($sumY,$scaleY,$y1,string(text()),@decimal,@cs)"/>
131  </xsl:template>
132  <!--===================================================================-->
133  <xsl:template match="gml:coordinates" mode="Path">
134    <xsl:value-of select="Extfun:convertCoordinatesToPath($sumY, $scaleX, $scaleY,$x1,$y1,string(text()),@decimal,@cs,@ts)"/>
135  </xsl:template>
136  <!--===================================================================-->
137  <xsl:function name="fs:coordinates">
138    <xsl:param name="context"/>
139    <xsl:variable name="coordinates">
140      <xsl:for-each select="$context//gml:coordinates">
141        <xsl:value-of select="."/>
142        <xsl:choose>
143          <xsl:when test="@ts != '' ">
144            <xsl:value-of select="@ts"/>
145          </xsl:when>
146          <xsl:otherwise>
147            <xsl:text/>
148          </xsl:otherwise>
149        </xsl:choose>
150      </xsl:for-each>
151    </xsl:variable>
152    <xsl:value-of select="Extfun:convertCoordinatesToPath($sumY, $scaleX, $scaleY,$x1,$y1,string($coordinates),$context/@decimal,$context/@cs,$context/@ts)"/>
153  </xsl:function>
154  <!--===================================================================-->
155</xsl:transform>
Note: See TracBrowser for help on using the repository browser.