source: proto/gml2svg/lib/stylesheets/xslt/Hotel.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: 9.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:xlink="http://www.w3.org/1999/xlink" 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      <defs>
19        <xsl:choose>
20          <xsl:when test="$svgProfile = 'tiny'">
21            <svg id="NIMA0174" preserveAspectRatio="xMidYMid meet" viewBox="0 0 20.584001541137695 32" xmlns="http://www.w3.org/2000/svg" xmlns:sym="http://www.galdosinc.com/fs">
22              <g>
23                <path d="M14.48,18.417c1.354,0,2.792,0.509,4.317,1.528     c1.524,1.019,2.287,2.12,2.287,3.305h-9.118L10.84,32.5c-0.322-2.37-0.504-3.694-0.548-3.973     c-0.042-0.277-0.107-0.49-0.192-0.638L9.52,23.25H0.5c0-1.277,0.795-2.426,2.385-3.443c1.438-0.926,2.802-1.389,4.09-1.389     V6.778c-1.16,0-2.266-0.212-3.318-0.639C2.326,5.603,1.66,4.88,1.66,3.973C1.66,2.491,2.615,1.5,4.527,1     c1.267-0.333,3.372-0.5,6.313-0.5c3.394,0,5.553,0.12,6.476,0.361c1.696,0.445,2.545,1.481,2.545,3.112     c0,0.851-0.741,1.564-2.223,2.138c-1.161,0.445-2.212,0.667-3.158,0.667V18.417z" stroke="#131517" stroke-linecap="round" stroke-linejoin="round"/>
24              </g>
25            </svg>
26          </xsl:when>
27          <xsl:otherwise>
28            <symbol id="NIMA0174" preserveAspectRatio="xMidYMid meet" viewBox="0 0 20.584001541137695 32" xmlns="http://www.w3.org/2000/svg" xmlns:sym="http://www.galdosinc.com/fs">
29              <sym:geometry>Point</sym:geometry>
30              <style xml:space="preserve"/>
31              <g>
32                <path d="M14.48,18.417c1.354,0,2.792,0.509,4.317,1.528     c1.524,1.019,2.287,2.12,2.287,3.305h-9.118L10.84,32.5c-0.322-2.37-0.504-3.694-0.548-3.973     c-0.042-0.277-0.107-0.49-0.192-0.638L9.52,23.25H0.5c0-1.277,0.795-2.426,2.385-3.443c1.438-0.926,2.802-1.389,4.09-1.389     V6.778c-1.16,0-2.266-0.212-3.318-0.639C2.326,5.603,1.66,4.88,1.66,3.973C1.66,2.491,2.615,1.5,4.527,1     c1.267-0.333,3.372-0.5,6.313-0.5c3.394,0,5.553,0.12,6.476,0.361c1.696,0.445,2.545,1.481,2.545,3.112     c0,0.851-0.741,1.564-2.223,2.138c-1.161,0.445-2.212,0.667-3.158,0.667V18.417z" stroke="#131517" stroke-linecap="round" stroke-linejoin="round"/>
33              </g>
34              <!--NIMA0174-->
35            </symbol>
36          </xsl:otherwise>
37        </xsl:choose>
38      </defs>
39      <xsl:apply-templates mode="Point" select="//pre1:Hotel/gml:position"/>
40    </xsl:element>
41  </xsl:template>
42  <!--==================================================================-->
43  <xsl:template match="pre1:Hotel/gml:position" mode="Point">
44    <xsl:variable name="x">
45      <xsl:choose>
46        <xsl:when test=".//gml:pos">
47          <xsl:apply-templates mode="PointX" select=".//gml:pos"/>
48        </xsl:when>
49        <xsl:otherwise>
50          <xsl:apply-templates mode="PointX" select=".//gml:coordinates"/>
51        </xsl:otherwise>
52      </xsl:choose>
53    </xsl:variable>
54    <xsl:variable name="y">
55      <xsl:choose>
56        <xsl:when test=".//gml:pos">
57          <xsl:apply-templates mode="PointY" select=".//gml:pos"/>
58        </xsl:when>
59        <xsl:otherwise>
60          <xsl:apply-templates mode="PointY" select=".//gml:coordinates"/>
61        </xsl:otherwise>
62      </xsl:choose>
63    </xsl:variable>
64    <xsl:variable name="xOffset">0</xsl:variable>
65    <xsl:variable name="yOffset">0</xsl:variable>
66    <xsl:variable name="xAnchor">0</xsl:variable>
67    <xsl:variable name="yAnchor">0</xsl:variable>
68    <xsl:element name="use" namespace="http://www.w3.org/2000/svg">
69      <xsl:attribute name="overflow">visible</xsl:attribute>
70      <xsl:attribute name="id">
71        <xsl:value-of select="../@gml:id"/>
72      </xsl:attribute>
73      <xsl:attribute name="xlink:href">#NIMA0174</xsl:attribute>
74      <xsl:variable name="sldSize">
75        <xsl:value-of select="12"/>
76      </xsl:variable>
77      <xsl:attribute name="width">
78        <xsl:value-of select="0.643250048160553* $sldSize"/>
79      </xsl:attribute>
80      <xsl:attribute name="height">
81        <xsl:value-of select="$sldSize"/>
82      </xsl:attribute>
83      <xsl:attribute name="transform">
84        <xsl:text>translate(</xsl:text>
85        <xsl:value-of select="$x+$xOffset - $xAnchor"/>
86        <xsl:text>, </xsl:text>
87        <xsl:value-of select="$y - $yOffset - $yAnchor"/>
88        <xsl:text>) </xsl:text>
89      </xsl:attribute>
90      <xsl:if test="$tooltipEvents = 'true' and $svgProfile != 'tiny'">
91        <xsl:choose>
92          <xsl:when test="$tooltipHandler = 'true'">
93            <xsl:attribute name="onmouseover">showTooltip(evt)</xsl:attribute>
94            <xsl:attribute name="onmouseout">hideTooltip(evt)</xsl:attribute>
95          </xsl:when>
96          <xsl:otherwise>
97            <xsl:attribute name="onmouseover">try{top.showTooltip(evt)}catch(e){}</xsl:attribute>
98            <xsl:attribute name="onmouseout">try{top.hideTooltip(evt)}catch(e){}</xsl:attribute>
99          </xsl:otherwise>
100        </xsl:choose>
101      </xsl:if>
102      <xsl:if test="$tooltipInfo = 'true' and $svgProfile != 'tiny'">
103        <xsl:element name="fs:tooltip">
104          <xsl:if test="ancestor::*[@gml:id]">
105            <xsl:value-of select="ancestor::*[@gml:id]/@gml:id"/>
106          </xsl:if>
107        </xsl:element>
108      </xsl:if>
109    </xsl:element>
110  </xsl:template>
111  <!--===================================================================-->
112  <xsl:variable name="boundingBox">
113    <xsl:choose>
114      <xsl:when test="$bbox != ''">
115        <xsl:value-of select="$bbox"/>
116      </xsl:when>
117      <xsl:when test="/*/gml:boundedBy/*/gml:upperCorner != ''">
118        <xsl:value-of select="replace(/*/gml:boundedBy/*/gml:lowerCorner, ' ', ',')"/>
119        <xsl:text>&amp;#32;</xsl:text>
120        <xsl:value-of select="replace(/*/gml:boundedBy/*/gml:upperCorner, ' ', ',')"/>
121      </xsl:when>
122      <xsl:otherwise>
123        <xsl:value-of select="/*/gml:boundedBy/*/gml:coordinates"/>
124      </xsl:otherwise>
125    </xsl:choose>
126  </xsl:variable>
127  <!--===================================================================-->
128  <xsl:variable name="sumY">
129    <xsl:value-of select="Extfun:getSumY($boundingBox, @decimal, @cs, @ts)"/>
130  </xsl:variable>
131  <!--===================================================================-->
132  <xsl:variable name="scaleX">
133    <xsl:value-of select="Extfun:getScaleX(string($width),$boundingBox,@decimal,@cs,@ts)"/>
134  </xsl:variable>
135  <!--===================================================================-->
136  <xsl:variable name="scaleY">
137    <xsl:value-of select="Extfun:getScaleY(string($height),$boundingBox,@decimal,@cs,@ts)"/>
138  </xsl:variable>
139  <!--===================================================================-->
140  <xsl:variable name="x1">
141    <xsl:value-of select="Extfun:getX1($boundingBox,@decimal,@cs,@ts)"/>
142  </xsl:variable>
143  <!--===================================================================-->
144  <xsl:variable name="y1">
145    <xsl:value-of select="Extfun:getY1($boundingBox,@decimal,@cs,@ts)"/>
146  </xsl:variable>
147  <!--===================================================================-->
148  <xsl:template match="gml:pos" mode="PointX">
149    <xsl:value-of select="Extfun:getPointX($scaleX,$x1,string(text()),@decimal,' ')"/>
150  </xsl:template>
151  <!--===================================================================-->
152  <xsl:template match="gml:pos" mode="PointY">
153    <xsl:value-of select="Extfun:getPointY($sumY,$scaleY,$y1,string(text()),@decimal,' ')"/>
154  </xsl:template>
155  <!--===================================================================-->
156  <xsl:template match="gml:posList" mode="Path">
157    <xsl:value-of select="Extfun:convertPosListToPath($sumY, $scaleX, $scaleY,$x1,$y1,string(text()),@decimal,'','')"/>
158  </xsl:template>
159  <!--===================================================================-->
160  <xsl:template match="gml:coordinates" mode="PointX">
161    <xsl:value-of select="Extfun:getPointX($scaleX,$x1,string(text()),@decimal,@cs)"/>
162  </xsl:template>
163  <!--===================================================================-->
164  <xsl:template match="gml:coordinates" mode="PointY">
165    <xsl:value-of select="Extfun:getPointY($sumY,$scaleY,$y1,string(text()),@decimal,@cs)"/>
166  </xsl:template>
167  <!--===================================================================-->
168  <xsl:template match="gml:coordinates" mode="Path">
169    <xsl:value-of select="Extfun:convertCoordinatesToPath($sumY, $scaleX, $scaleY,$x1,$y1,string(text()),@decimal,@cs,@ts)"/>
170  </xsl:template>
171  <!--===================================================================-->
172  <xsl:function name="fs:coordinates">
173    <xsl:param name="context"/>
174    <xsl:variable name="coordinates">
175      <xsl:for-each select="$context//gml:coordinates">
176        <xsl:value-of select="."/>
177        <xsl:choose>
178          <xsl:when test="@ts != '' ">
179            <xsl:value-of select="@ts"/>
180          </xsl:when>
181          <xsl:otherwise>
182            <xsl:text/>
183          </xsl:otherwise>
184        </xsl:choose>
185      </xsl:for-each>
186    </xsl:variable>
187    <xsl:value-of select="Extfun:convertCoordinatesToPath($sumY, $scaleX, $scaleY,$x1,$y1,string($coordinates),$context/@decimal,$context/@cs,$context/@ts)"/>
188  </xsl:function>
189  <!--===================================================================-->
190</xsl:transform>
Note: See TracBrowser for help on using the repository browser.