1 |
3032
|
perry
|
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
|
|
<xsl:stylesheet
|
3 |
|
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
4 |
|
|
xmlns:gml="http://www.opengis.net/gml"
|
5 |
|
|
version="1.0">
|
6 |
|
|
<!--
|
7 |
|
|
Description: Convert GML to WKT.
|
8 |
|
|
Precondition: <coordinates> have been converted to <coords> (using
|
9 |
|
|
GmlCoordinates2Coord.xsl).
|
10 |
|
|
Author: Cameron Shorter cameron ATshorter.net, Nedjo Rogers nedjo ATgworks.ca
|
11 |
|
|
Licence: GPL as per: http://www.gnu.org/copyleft/gpl.html
|
12 |
|
|
|
13 |
|
|
$Id:
|
14 |
|
|
$Name$
|
15 |
|
|
-->
|
16 |
|
|
<xsl:output method="xml" encoding="utf-8"/>
|
17 |
|
|
|
18 |
|
|
<!-- Root node -->
|
19 |
|
|
<xsl:template match="/">
|
20 |
|
|
<js>
|
21 |
|
|
<xsl:apply-templates/>
|
22 |
|
|
</js>
|
23 |
|
|
</xsl:template>
|
24 |
|
|
|
25 |
|
|
<!-- Match and render a GML Point -->
|
26 |
|
|
<xsl:template match="gml:pointMember/gml:Point | gml:pointProperty/gml:Point">
|
27 |
|
|
<xsl:variable name="x0" select="gml:coord/gml:X"/>
|
28 |
|
|
<xsl:variable name="y0" select="gml:coord/gml:Y"/>
|
29 |
|
|
// Point
|
30 |
|
|
objRef.setValue('POINT(<xsl:value-of select="$x0"/> <xsl:value-of select="$y0"/>)');
|
31 |
|
|
</xsl:template>
|
32 |
|
|
|
33 |
|
|
|
34 |
|
|
<!-- Match and render a LineString -->
|
35 |
|
|
<xsl:template match="gml:LineString">
|
36 |
|
|
<xsl:text> objRef.setValue('LINESTRING(</xsl:text>
|
37 |
|
|
<xsl:for-each select="gml:coord">
|
38 |
|
|
<xsl:value-of select="gml:X"/>
|
39 |
|
|
<xsl:text> </xsl:text>
|
40 |
|
|
<xsl:value-of select="gml:Y"/>
|
41 |
|
|
<xsl:if test="following-sibling::gml:coord">
|
42 |
|
|
<xsl:text>,</xsl:text>
|
43 |
|
|
</xsl:if>
|
44 |
|
|
</xsl:for-each>
|
45 |
|
|
<xsl:text>)');</xsl:text>
|
46 |
|
|
</xsl:template>
|
47 |
|
|
|
48 |
|
|
<xsl:template match="text()|@*"/>
|
49 |
|
|
|
50 |
|
|
</xsl:stylesheet>
|