1 |
2671
|
harris
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2 |
|
|
|
3 |
|
|
<!--
|
4 |
|
|
Description: parses an OGC context document to generate a GetFeatureInfo url
|
5 |
|
|
Author: Nedjo
|
6 |
|
|
Licence: LGPL as specified in http://www.gnu.org/copyleft/lesser.html .
|
7 |
|
|
|
8 |
|
|
$Id$
|
9 |
|
|
$Name$
|
10 |
|
|
-->
|
11 |
|
|
<xsl:stylesheet version="1.0" xmlns:wmc="http://www.opengis.net/context" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink">
|
12 |
|
|
<xsl:output method="xml"/>
|
13 |
|
|
<xsl:strip-space elements="*"/>
|
14 |
|
|
|
15 |
|
|
<!-- parameters to be passed into the XSL -->
|
16 |
|
|
<!-- The name of the WMS GetFeatureInfo layer -->
|
17 |
|
|
<xsl:param name="queryLayer">highways</xsl:param>
|
18 |
|
|
<xsl:param name="xCoord">1</xsl:param>
|
19 |
|
|
<xsl:param name="yCoord">1</xsl:param>
|
20 |
|
|
<xsl:param name="infoFormat">text/html</xsl:param>
|
21 |
|
|
<xsl:param name="featureCount">1</xsl:param>
|
22 |
|
|
|
23 |
|
|
<!-- Global variables -->
|
24 |
|
|
<xsl:variable name="bbox">
|
25 |
|
|
<xsl:value-of select="/wmc:ViewContext/wmc:General/wmc:BoundingBox/@minx"/>,<xsl:value-of select="/wmc:ViewContext/wmc:General/wmc:BoundingBox/@miny"/>,<xsl:value-of select="/wmc:ViewContext/wmc:General/wmc:BoundingBox/@maxx"/>,<xsl:value-of select="/wmc:ViewContext/wmc:General/wmc:BoundingBox/@maxy"/>
|
26 |
|
|
</xsl:variable>
|
27 |
|
|
<xsl:variable name="width">
|
28 |
|
|
<xsl:value-of select="/wmc:ViewContext/wmc:General/wmc:Window/@width"/>
|
29 |
|
|
</xsl:variable>
|
30 |
|
|
<xsl:variable name="height">
|
31 |
|
|
<xsl:value-of select="/wmc:ViewContext/wmc:General/wmc:Window/@height"/>
|
32 |
|
|
</xsl:variable>
|
33 |
|
|
<xsl:variable name="srs" select="/wmc:ViewContext/wmc:General/wmc:BoundingBox/@SRS"/>
|
34 |
|
|
|
35 |
|
|
<!-- Root template -->
|
36 |
|
|
<xsl:template match="/">
|
37 |
|
|
<url>
|
38 |
|
|
<xsl:apply-templates select="wmc:ViewContext/wmc:LayerList"/>
|
39 |
|
|
<error>URL not calculated for layer=<xsl:value-of select="$queryLayer"/></error>
|
40 |
|
|
</url>
|
41 |
|
|
</xsl:template>
|
42 |
|
|
|
43 |
|
|
<!-- Layer template -->
|
44 |
|
|
<xsl:template match="wmc:Layer">
|
45 |
|
|
<xsl:if test="contains($queryLayer,wmc:Name)">
|
46 |
|
|
<!-- Layer variables -->
|
47 |
|
|
<xsl:variable name="version">
|
48 |
|
|
<xsl:value-of select="wmc:Server/@version"/>
|
49 |
|
|
</xsl:variable>
|
50 |
|
|
<xsl:variable name="baseUrl">
|
51 |
|
|
<xsl:value-of select="wmc:Server/wmc:OnlineResource/@xlink:href"/>
|
52 |
|
|
</xsl:variable>
|
53 |
|
|
<xsl:variable name="firstJoin">
|
54 |
|
|
<xsl:choose>
|
55 |
|
|
<xsl:when test="substring($baseUrl,string-length($baseUrl))='?'"></xsl:when>
|
56 |
|
|
<xsl:when test="contains($baseUrl, '?')">&</xsl:when>
|
57 |
|
|
<xsl:otherwise>?</xsl:otherwise>
|
58 |
|
|
</xsl:choose>
|
59 |
|
|
</xsl:variable>
|
60 |
|
|
|
61 |
|
|
<!-- Print the URL -->
|
62 |
|
|
<xsl:value-of select="$baseUrl"/><xsl:value-of select="$firstJoin"/>VERSION=<xsl:value-of select="$version"/>&REQUEST=GetFeatureInfo&SRS=<xsl:value-of select="$srs"/>&BBOX=<xsl:value-of select="$bbox"/>&WIDTH=<xsl:value-of select="$width"/>&HEIGHT=<xsl:value-of select="$height"/>&LAYERS=<xsl:value-of select="$queryLayer"/>&FORMAT=<xsl:value-of select="$infoFormat"/>&FEATURE_COUNT=<xsl:value-of select="$featureCount"/>&QUERY_LAYERS=<xsl:value-of select="$queryLayer"/>&X=<xsl:value-of select="$xCoord"/>&Y=<xsl:value-of select="$yCoord"/>
|
63 |
|
|
</xsl:if>
|
64 |
|
|
</xsl:template>
|
65 |
|
|
</xsl:stylesheet>
|