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