[OpenLayers-Users] GetFeatureInfo problems
Maria Panagou
snowdrop at ath.forthnet.gr
Sun Jan 20 13:53:08 EST 2008
i'm trying to include a GetFeatureInfo query in my Openlayers app. In my html
I have included the following code for onclick event :
map.events.register('click', map, function (e) {
OpenLayers.Util.getElement('nodeList').innerHTML = "Loading...
please wait...";
var url = quakes.getFullRequestString({
REQUEST: "GetFeatureInfo",
EXCEPTIONS: "application/vnd.ogc.se_xml",
BBOX: quakes.map.getExtent().toBBOX(),
X: e.xy.x,
Y: e.xy.y,
INFO_FORMAT: 'text/html',
QUERY_LAYERS: 'Quakes',
layers:'Quakes',
WIDTH: map.size.w,
HEIGHT: map.size.h});
OpenLayers.loadURL(url, '', this, setHTML,setHTML);
OpenLayers.Event.stop(e);
});
function setHTML(response) {
OpenLayers.Util.getElement('nodeList').innerHTML =
response.responseText;
}
upon clicking on my point layer "Quakes" which is to be queried, i get no
results, just the loading..please wait text and I get the following error in
firebug
[Exception... "'Permission denied to call method XMLHttpRequest.open' when
calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001e
(NS_ERROR_XPC_JS_THREW_STRING)" location: "<unknown>" data: no]
I've read about that it could be a proxy host problem but I don't think that
that is my case since the layer to query is at the same server as my mapfile
and PostGIS database. However I tried to setup a proxy host on the server,
which seems to work fine, but it doesn't correct the error message. Do i
really need a proxy host?
Next step, I tried to query the server localy issuing the following
GetFeatureInfo request :
http://127.0.0.1/cgi-bin/mapserv.exe?map=../htdocs/mpanagou/Quakes1.map&LAYERS=Quakes&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&QUERY_LAYERS=Quakes&STYLES=&EXCEPTIONS=application/vnd.ogc.se_xml&X=185&Y=194&FORMAT=image/png&SRS=EPSG:4326&INFO_FORMAT=text/html&WIDTH=650&HEIGHT=530&BBOX=19.2,34.5,29.8,42.1
it doesn't work however i think due to a different reason. When using
INFO_FORMAT=text/html, i am prompted to open/save a file containing:
<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM
"http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd">
<ServiceExceptionReport version="1.1.1">
<ServiceException>
</ServiceException>
</ServiceExceptionReport>
when using INFO_FORMAT=text/plain i get the message
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then
click the Refresh button, or try again later.
--------------------------------------------------------------------------------
Invalid at the top level of the document. Error processing resource
'http://127.0.0.1/cgi-bin/mapserv.exe?map=../htdocs/mpa...
GetFeatureInfo results:
^
and when INFO_FORMAT=application/vnd.ogc.gml I am prompted to open/save a
file whose contents are:
<?xml version="1.0" encoding="ISO-8859-1"?>
<msGMLOutput
xmlns:gml="http://www.opengis.net/gml"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Quakes_layer>
Does the template which i have defined in my mapfile has anything to do with
text/plain or application/vnd.ogc.gml INFO_FORMAT or only with text/html
format?
In the error log of Mapserver,in the lase case, I can see the following
information, that indicates that a record is being found but for a reason
that i don't understand not finally shown.
msPOSTGISLayerInitItemInfo called\r
msPOSTGISLayerGetShape called for record = 721\r
msPOSTGISLayerRetrievePK(): Found schema public, table quake_small.\r
msPOSTGISLayerRetrievePGVersion(): query = select substring(version() from
12 for (position('on' in version()) - 13))\r
msPOSTGISLayerRetrievePGVersion: Version String: 8.2.4\r
msPOSTGISLayerRetrievePGVersion(): Found version 8, 2, 4\r
msPOSTGISLayerRetrievePK: query = select attname from pg_attribute,
pg_constraint, pg_class, pg_namespace where pg_constraint.conrelid =
pg_class.oid and pg_class.oid = pg_attribute.attrelid and
pg_constraint.contype = 'p' and pg_constraint.conkey[1] =
pg_attribute.attnum and pg_class.relname = 'quake_small' and
pg_class.relnamespace = pg_namespace.oid and pg_namespace.nspname = 'public'
and pg_constraint.conkey[2] is null\r
msPOSTGISLayerParseData: unique column = codee, srid='', geom_column_name =
pos, table_name=public.quake_small\r
msPOSTGISLayerGetShape: DECLARE mycursor2 BINARY CURSOR FOR SELECT
"mag"::text,"depth"::text,asbinary(force_collection(force_2d(pos)),'NDR')
from public.quake_small WHERE codee = 721 \r
msPOSTGISLayerClose datastatement: pos FROM public.quake_small\r
msPOSTGISLayerClose -- query_result is NULL\r
msConnPoolRelease(Quakes,user=postgres password=manolis dbname=macroseismic
host=localhost port=5432,01BBD680)\r
Error in my_thread_global_end(): 1 threads didn't exit\r
I have defined a query results template in my mapfile which is the
following:
<!-- query template -->
<html>
<head>
<title>MapServer - ItemQuery</title>
</head>
<body bgcolor="#ffffff">
Codee: [codee]<br>
</body>
</html>
I kept it as simple as possible with only one attribute codee showing. Do i
need a header and footer template too?
The important parts of my mapfile are:
WEB
IMAGEPATH "C:/ms4w/tmp/ms_tmp/"
IMAGEURL "/ms_tmp/"
LOG "C:/temp/MapServer.log"
METADATA
WMS_TITLE "QuakeMap"
TITLE="QuakeMap"
WMS_ONLINERESOURCE="http://gaia.dbnet.ece.ntua.gr/cgi-bin/mapserv.exe?map=../htdocs/mpanagou/Quakes1.map&"
wms_feature_info_mime_type "text/html"
wms_srs "EPSG:4326"
END
END
LAYER
.......
METADATA
WMS_TITLE="Quakes"
wms_include_items "all"
wms_srs "EPSG:4326"
wms_extent "19.2 34.5 29.8 42.1"
END
DUMP TRUE
TEMPLATE "Query Template results.html"
.....
I'm totally confused here. I would appreciate some help. I read a lot of
documentation and forum threads but i can't figure out the problem.
--
View this message in context: http://www.nabble.com/GetFeatureInfo-problems-tp14985142p14985142.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
More information about the Users
mailing list