[mapserver-users] GetFeatureInfo from Oracle Spatial

Kristian Thy thy at 42.dk
Sat Jun 7 15:49:19 PDT 2008


Hi list

I've made a small openlayers viewer that shows a data layer from a
materialized view in Oracle Spatial. When clicking on the map, I do a
simple GetFeatureInfo which works when I test it with a shapefile-based
layer, but when I move to the Oracle layer, I get an error message
saying that no features were found with MAXIMO_ID = 0 (something to that
effect, anyways). Unfortunately this is an internal GIS app, so I can't
demo it.

The relevant layer definition in my map file:
------------------------------------------------------------------------
  LAYER
    NAME 'TRIM-Q'
    TYPE POINT
    CONNECTIONTYPE oraclespatial
    CONNECTION "******@******"
    DATA "SHAPE FROM (SELECT MAXIMO_ID, ASSETTYPE, SHAPE FROM MAPSERVER_TRIMQ) USING UNIQUE MAXIMO_ID SRID 32632 VERSION 10g"
    TEMPLATE "trim.html"
    HEADER "trim_header.html"
    FOOTER "trim_footer.html"
    TOLERANCE 20
    DUMP true 

    METADATA
      "wms_title" "TRIM-Q"
      "wms_srs" "EPSG:32632"
      "wms_include_items" "ALL"
      "ows_include_items" "ALL"
      "gml_include_items" "ALL"
    END #metadata

    CLASS
      NAME 'vejskab' 
      EXPRESSION ('[ASSETTYPE]' = 'VEJSKAB')
      STYLE
        SYMBOL 'square'
        OFFSET -4 -2
      END #STYLE
      LABEL
        type truetype
        antialias true
        font arial_black
        size 8
        position ll
        color 0 0 0
        outlinecolor 255 255 255
        buffer 2
        partials false
      END #label
      TEXT ([MAXIMO_ID])
    END #class

    CLASS
      #NAME faerdselstavle
      EXPRESSION ('[ASSETTYPE]' = 'TAVLE')
      STYLE
        SYMBOL 'triangle'
        OFFSET -10 2
      END #STYLE
      LABEL
        FORCE true
        type truetype
        antialias true
        font arial_black
        size 8
        position lc
        color 0 0 0
        outlinecolor 255 255 255
        buffer 0
        partials false
      end #label
      TEXT ([MAXIMO_ID])
    END #class

    CLASS
      #NAME 'other values'
      STYLE
        SYMBOL 'circle'
        SIZE 2
        COLOR 100 0 0
      END #STYLE
      LABEL
        type truetype
        antialias true
        font arial_black
        size 8
        position uc
        color 0 0 0
        outlinecolor 255 255 255
        buffer 2
        partials false
      end #label
      TEXT ([MAXIMO_ID])
    END #class

    SIZEUNITS PIXELS
    STATUS ON
    UNITS meters
    MAXSCALE 60000
    LABELMAXSCALE 60000    
  END #layer
------------------------------------------------------------------------

The OpenLayers code I use for calling GetFeatureInfo:
------------------------------------------------------------------------
			map.events.register('click', map, function (e)
			{
				var url = trimq.getFullRequestString({
					REQUEST: 'GetFeatureInfo',
					EXCEPTIONS: 'application/vnd.ogc.se_xml',
					BBOX: trimq.map.getExtent().toBBOX(),
					X: e.xy.x,
					Y: e.xy.y,
					INFO_FORMAT: 'text/plain',
					QUERY_LAYERS: 'TRIM-Q',
					RADIUS: 5,
					WIDTH: trimq.map.size.w,
					HEIGHT: trimq.map.size.h});
				document.getElementById('map').style.cursor = 'wait';
				OpenLayers.loadURL(url, '', this, handleResponse);
				Event.stop(e);
			});

			function handleResponse(response)
			{
				document.getElementById('map').style.cursor = 'auto';
				alert(response.responseText);
			}
------------------------------------------------------------------------

As mentioned, this works if I query a shapefile-based layer, so I assume
the javascript is ok. Any ideas what my problem is?

\\kristian
-- 
... et nemo ex vobis interrogat me: »Quo vadis?«



More information about the MapServer-users mailing list