Project

General

Profile

1
<?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: GetFeatureInfo.xsl 2678 2005-10-18 20:48:23Z harris $
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, '?')">&amp;</xsl:when> 
57
          <xsl:otherwise>?</xsl:otherwise>
58
        </xsl:choose>
59
      </xsl:variable>
60

    
61
     http://sulphur.homelinux.com:7000/cgs/metacat_spatialresolver.jsp<xsl:value-of select="$firstJoin"/>VERSION=<xsl:value-of select="$version"/>&amp;REQUEST=GetFeatureInfo&amp;SRS=<xsl:value-of select="$srs"/>&amp;BBOX=<xsl:value-of select="$bbox"/>&amp;WIDTH=<xsl:value-of select="$width"/>&amp;HEIGHT=<xsl:value-of select="$height"/>&amp;LAYERS=<xsl:value-of select="$queryLayer"/>&amp;FORMAT=<xsl:value-of select="$infoFormat"/>&amp;FEATURE_COUNT=<xsl:value-of select="$featureCount"/>&amp;QUERY_LAYERS=<xsl:value-of select="$queryLayer"/>&amp;X=<xsl:value-of select="$xCoord"/>&amp;Y=<xsl:value-of select="$yCoord"/>
62
      <!-- Print the URL -->
63
      <!--<xsl:value-of select="$baseUrl"/><xsl:value-of select="$firstJoin"/>VERSION=<xsl:value-of select="$version"/>&amp;REQUEST=GetFeatureInfo&amp;SRS=<xsl:value-of select="$srs"/>&amp;BBOX=<xsl:value-of select="$bbox"/>&amp;WIDTH=<xsl:value-of select="$width"/>&amp;HEIGHT=<xsl:value-of select="$height"/>&amp;LAYERS=<xsl:value-of select="$queryLayer"/>&amp;FORMAT=<xsl:value-of select="$infoFormat"/>&amp;FEATURE_COUNT=<xsl:value-of select="$featureCount"/>&amp;QUERY_LAYERS=<xsl:value-of select="$queryLayer"/>&amp;X=<xsl:value-of select="$xCoord"/>&amp;Y=<xsl:value-of select="$yCoord"/>
64
   --> </xsl:if>
65
  </xsl:template>
66
</xsl:stylesheet>
    (1-1/1)