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