【发布时间】:2015-11-12 23:59:03
【问题描述】:
我已经创建了一个特征选择器层:
// Add Feature Picker
featurePicker = new OpenLayers.Control.WMSGetFeatureInfo({
url: "http://server01:8080/geoserver/sf/wms",
title: 'identify features on click',
layers: [layer01,
layer02],
queryVisible: true,
output: 'features',
infoFormat: 'application/json',
format: new OpenLayers.Format.JSON
});
featurePicker.events.register("getfeatureinfo", this, showFeatureInfo);
map.addControl(featurePicker);
featurePicker.activate();
从一个层 (layer01) 中找到该特征,但从另一层 (layer02) 中,当我单击某个特征时,它没有找到该特征。
当点击任一层的要素时,它会触发 showFeatureInfo 事件:
function showFeatureInfo(e) {
// Parse the features into an array
selectedFeaturesParse(e.features);
}
但是点击layer02中的特征时没有返回任何特征:
换句话说,jsonObject.features.length 在单击 layer02 中的功能时始终为零。当点击 layer01 的一个特征时,jsonObject.features.length 等于一:
function selectedFeaturesParse(jsonObject) {
selectedFeatures = [];
for (var i = 0 ; i < jsonObject.features.length; i++) {
...
}
我将后端作为地理服务器,并且两个层的配置相同。一层是表(layer01),另一层是sql视图查询(layer02)。为什么单击 layer02 中的要素时找不到要素?谢谢。
【问题讨论】:
标签: openlayers