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