source: proto/gml2svg/lib/stylesheets/xslt_opt_intel_c/PostOffice.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: 4.4 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xsl:transform xmlns="http://www.w3.org/2000/svg" xmlns:van="http://www.galdosinc.com/vancouver"
3               xmlns:gml="http://www.opengis.net/gml"
4               xmlns:ogc="http://www.opengis.net/ogc"
5               xmlns:sld="http://www.opengis.net/sld"
6               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
7               xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
8               xmlns:Extfun="/org.opengis.gml.StyleExt"
9               version="2.0"
10               exclude-result-prefixes="van gml ogc sld xsi xsl Extfun">
11   <xsl:output indent="no" method="xml" encoding="UTF-8" omit-xml-declaration="yes"/>
12   <strip-space elements="*"/>
13   <xsl:param name="height" select="800"/>
14   <xsl:param name="width" select="800"/>
15   <xsl:param name="bbox"/>
16   <xsl:param name="x1"/>
17   <xsl:param name="y1"/>
18   <xsl:param name="x2"/>
19   <xsl:param name="y2"/>
20   <!--Root Node  ==================================================================-->
21    <xsl:template match="/">
22      <svg width="{$width}" height="{$height}">
23         <g transform="scale({format-number($scaleX,&#34;#.#################&#34;)},{format-number(-1 * $scaleY,&#34;#.#################&#34;)}) translate({format-number(-1*$x1,&#34;######.000000&#34;)},{format-number(-1*$y2,&#34;######.000000&#34;)})"
24            style="fill:rgb(165,41,38);">
25            <xsl:apply-templates select="//van:PostOffice/gml:extentOf"/>
26         </g>
27      </svg>
28   </xsl:template>
29   <!--Layer  ==================================================================-->
30    <xsl:template match="van:PostOffice/gml:extentOf">
31      <xsl:call-template name="Polygon"/>
32   </xsl:template>
33   <!--Polygon ==================================================================-->
34    <xsl:template name="Polygon">
35      <xsl:variable name="id" select="../@gml:id"/>
36      <xsl:variable name="d">
37         <xsl:choose>
38            <xsl:when test=".//gml:posList">
39               <xsl:apply-templates mode="Path" select=".//gml:posList"/>
40            </xsl:when>
41            <xsl:otherwise>
42               <xsl:apply-templates mode="Path" select=".//gml:coordinates"/>
43            </xsl:otherwise>
44         </xsl:choose>
45      </xsl:variable>
46      <path id="{$id}" d="{$d}" onmouseover="showTooltip(evt)"
47            onmouseout="hideTooltip(evt)"/>
48   </xsl:template>
49   <!--Line ==================================================================-->
50    <xsl:template name="Line">
51      <xsl:variable name="id" select="../@gml:id"/>
52      <xsl:variable name="d">
53         <xsl:choose>
54            <xsl:when test=".//gml:posList">
55               <xsl:apply-templates mode="Path" select=".//gml:posList"/>
56            </xsl:when>
57            <xsl:otherwise>
58               <xsl:apply-templates mode="Path" select=".//gml:coordinates"/>
59            </xsl:otherwise>
60         </xsl:choose>
61      </xsl:variable>
62      <path id="{$id}" d="{$d}" onmouseover="showTooltip(evt)"
63            onmouseout="hideTooltip(evt)"/>
64   </xsl:template>
65   <!--Point ==================================================================-->
66    <xsl:template name="Point"><!--TODO - Implement Optimized Point geometry types.--></xsl:template>
67   <!--Variable Definitions ==================================================================-->
68    <xsl:variable name="boundingBox">
69      <xsl:value-of select="string($bbox)"/>
70   </xsl:variable>
71   <!--==================================================================-->
72    <xsl:variable name="scaleX">
73      <xsl:value-of select="$width div ($x2 - $x1)"/>
74   </xsl:variable>
75   <!--==================================================================-->
76    <xsl:variable name="scaleY">
77      <xsl:value-of select="$height div ($y2 - $y1)"/>
78   </xsl:variable>
79   <!--==================================================================-->
80    <xsl:template match="gml:coordinates" mode="Path">
81      <xsl:variable name="svg-path"/>
82      <xsl:variable name="svg-prefix" select="substring-before(string(text()),' ')"/>
83      <xsl:variable name="svg-suffix" select="substring-after(string(text()),' ')"/>
84      <xsl:choose>
85         <xsl:when test="string-length($svg-suffix) &gt; 0">
86            <xsl:value-of select="concat('M',$svg-prefix,' L',$svg-suffix)"/>
87         </xsl:when>
88         <xsl:otherwise>
89            <xsl:value-of select="''"/>
90         </xsl:otherwise>
91      </xsl:choose>
92   </xsl:template>
93</xsl:transform>
Note: See TracBrowser for help on using the repository browser.