正如标题所说......我试图访问与矢量图层相关但没有任何成功的数据 我收到以下错误: “请求中没有QUERY_LAYERS,或者请求中没有可查询的图层”
我正在使用geoserver,openlayers和下面显示的脚本....
map.events.register('click', map, function (e) {
document.getElementById('nodelist').innerHTML = "Loading... please wait...";
var params = {
REQUEST: "GetFeatureInfo",
EXCEPTIONS: "application/vnd.ogc.se_xml",
BBOX: map.getExtent().toBBOX(),
X: e.xy.x,
Y: e.xy.y,
INFO_FORMAT: 'text/html',
QUERY_LAYERS: map.layers[1].options.typename,
FEATURE_COUNT: 50,
Layers: 'monitor:Routers',
Styles: '',
Srs: 'EPSG:4326',
WIDTH: map.size.w,
HEIGHT: map.size.h,
};
OpenLayers.loadURL("http://tobagoborn.com:8080/geoserver/wfs", params, this, setHTML, setHTML);
OpenLayers.Event.stop(e);
});
非常感谢任何关于我做错的建议
此致 克里斯
答案 0 :(得分:1)
您可以要求WFS使用request = getfeature向您发送数据,但如果您使用的是getfeatureinfo,则需要WMS服务器。 GeoServer可以通过两个接口提供数据,但最好不要将两者混合使用。
在代码中,您显示的最可能的问题是地图中没有2个图层,因为数组从0开始编号。
答案 1 :(得分:0)
您的源URL(WFS服务器)实际上是否正常工作?当我try to go there时,我会超时。
答案 2 :(得分:0)
// Your map object //
map = new ol.Map({})
// on click event call displayFeatureInfo method and pass the pixel as a
argument in this method //
map.on('click', function(event) {
displayFeatureInfo(event.pixel)
})
// execute the displayFeatureInfo method //
var displayFeatureInfo = function(pixel) {
var features = map.getFeaturesAtPixel(pixel, function(feature) {
return feature
})
console.log(features)
console.log(features.R)
// 1. when you see features in console, it is either object or array //
// 2. if got a multiple value on click event then it gives you a array and if
got a single value on click event then it gives you a object //
// 3. now we assume it is object, see (features.R) in console. information is
in single single character, then you can concat. //
}