WMSGetFeatureInfo с большим количеством слоёв
Добавлено: 16 фев 2012, 14:23
				
				Доброго времени суток!
При отображении карты с большим количеством слоёв и запросом атрибутов точечных данных (используя GeoExt.popup и WMSGetFeatureInfo), popup появляется только на первом отображаемом слое (любой первый выбранный), причем пустой, без необходимой информации. При выборе остальных - не появляется даже пустой popup.
Код следующий:
Почему так происходит?
Если кто-то сталкивался с подобной проблемой, подскажите решение, пожалуйста.
			При отображении карты с большим количеством слоёв и запросом атрибутов точечных данных (используя GeoExt.popup и WMSGetFeatureInfo), popup появляется только на первом отображаемом слое (любой первый выбранный), причем пустой, без необходимой информации. При выборе остальных - не появляется даже пустой popup.
Код следующий:
Код: Выделить всё
<script type="text/javascript">
    Ext.onReady(function() {
		
		var map = new OpenLayers.Map();
		var googlemapsatellite = new OpenLayers.Layer.Google(
            "Google Satellite",
			{type: G_SATELLITE_MAP}
            );
			googlemapsatellite.setIsBaseLayer(true);
			map.addLayer(googlemapsatellite);
		
		var layers = [
			
			new OpenLayers.Layer.WMS("слой 1",
			"мой_первый_слой",
			{
				layers: "мой_первый_слой",
				transparent: true
			},
			{reproject: true},
			{
				isBaseLayer: false,
				buffer: 0
			}),
				
			new OpenLayers.Layer.WMS("слой 2",
			"мой_второй_слой",
			{
				transparent: "TRUE",
				layers: "мой_второй_слой",
			},
			{reproject: true},
			{
				isBaseLayer: false,
				buffer: 0
			}
			)
		];
		var mappanel = new GeoExt.MapPanel({
			renderTo: 'gxmap',
			height: 600,
			width: 750,
			map: map,
			title: 'Basic Map',
			center: [-7.92114,42.90816],
			zoom: 8,
			layers: layers
        });
		
		var tree = new Ext.tree.TreePanel({
            renderTo: 'layers',
			border: true,
			region: "west",
			title: "Layers",
			height: 600,
			width: 250,
			root: {},
			rootVisible: false,
			enableDD: true
		});
		tree.render(document.body);
		var node = new GeoExt.tree.BaseLayerContainer({
			text: "Base Layers"
		});
		tree.root.appendChild(node);
		var node = new GeoExt.tree.OverlayLayerContainer({
			text: "Overlay Layers",
			expanded: true
		});
		tree.root.appendChild(node);
		node.eachChild(function(child) {
            child.ui.toggleCheck(false);
            }
		);
		var legendPanel = new GeoExt.LegendPanel({
			title: "Legend",
			renderTo: "legend",
			defaults: {
			style: 'padding:5px'
			},
			width: 250,
			height: 600,
			border: true,
			bodyStyle: 'padding:5px'
		});
		legendPanel.render(document.body);
	map.addControl(
		new OpenLayers.Control.WMSGetFeatureInfo({
			autoActivate: true,
			infoFormat: 'text/plain',
			maxFeatures: 1000,
			layers: layers,
			queryVisible: true,
			eventListeners: {
				'getfeatureinfo': function(e) {
                    new GeoExt.Popup({
                        title: "Attributes",
                        width: 200,
                        height: 200,
                        map: map,
                        location: e.xy,
                    }).show();
				}
			}
		}));
    });
Почему так происходит?
Если кто-то сталкивался с подобной проблемой, подскажите решение, пожалуйста.