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