Я создал функцию сборщика слой:OpenLayers 2 WMSGetFeatureInfo GetFeatureInfo не выбирает функцию
// 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++) {
...
}
У меня есть бэкенд как GeoServer и оба слоя выполнены одинаковыми. Один слой представляет собой таблицу (layer01), а другой слой представляет собой запрос sql view (layer02). Почему функции не будут найдены при нажатии на функцию из layer02? Благодарю.