Лучше поздно чем никогда. Все по прежнему, на клик выкидывает - nogetfeatureinfo.
Делаю для слоя wmss по твоему примеру. Но все как и было. В чем трабл?
На всякий случай полный код всего. Вот карта openlaeyrs:
Код: Выделить всё
...
<div style="width:100%; height:600px" id="map"></div>
<script defer="defer" type="text/javascript">
OpenLayers.ProxyHost = "http://xn--26-6kc4btrhf0b.xn--p1ai/cgi-bin/proxy.cgi?url=";
var lon = 44;
var lat = 46;
var zoom = 0;
var options = {
minResolution: "auto",
maxResolution: "auto",
minExtent: new OpenLayers.Bounds(-400, -400, 400, 400),
maxExtent: new OpenLayers.Bounds(-19000, -10000, 9000, 7000),
numZoomLevels: 14,
//maxExtent: new OpenLayers.Bounds(-19000, -11000, 13000, 10000),
units: 'm',
controls: [
new OpenLayers.Control.MouseDefaults(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.Navigation({zoomWheelEnabled: true, handleRightClicks: true}),
new OpenLayers.Control.LayerSwitcher(),
new OpenLayers.Control.OverviewMap(),
new OpenLayers.Control.KeyboardDefaults(),
new OpenLayers.Control.ScaleLine(),
new OpenLayers.Control.Scale()
]
};
var s_sel = new OpenLayers.Style({pointRadius: 10,fillColor: "green",strokeColor: "black",strokewidth: 10});
var map = new OpenLayers.Map('map',options);
var markers = new OpenLayers.Layer.Markers( "отметки",{displayInLayerSwitcher: false,visibility:true});
map.addLayer(markers);
var mapsrvpath = "http://xn--26-6kc4btrhf0b.xn--p1ai/cgi-bin/mapserv?";
var mappath = "/var/www/maps/w.map";
var wms = new OpenLayers.Layer.WMS( 'Ставрополь', mapsrvpath, {'map': mappath, 'layers': 'basic'},{'reproject': true},{isBaseLayer: true, visibility: true});
var wmss = new OpenLayers.Layer.WMS( 'wmss',
"http://xn--26-6kc4btrhf0b.xn--p1ai/cgi-bin/mapserv?map=/var/www/maps/w.map",
{layers: "basic", transparent: true},
{isBaseLayer: false, opacity: 1, singleTile: true, visibility: true}
);
var selected = new OpenLayers.Layer.WMS("Поиск",mapsrvpath,{map:mappath,layers: 'selected',sql:"select * from zemlepol_2 where addres_zu=':1'",transparent:"true",'mapstyle': s_sel},{isBaseLayer: false});//singleTile:true
var lesxoz = new OpenLayers.Layer.WMS( 'парки', mapsrvpath, {map: mappath, layers: 'LESXOZ',transparent: 'true'},{isBaseLayer: false, visibility: false,opacity: 0.7});
var dom = new OpenLayers.Layer.WMS( 'дома', mapsrvpath, {map: mappath, layers: 'DOM',transparent:"true"},{isBaseLayer: false, visibility: false});
var street = new OpenLayers.Layer.WMS( 'улицы', mapsrvpath, {map: mappath, layers: 'STREET',transparent:"true"},{isBaseLayer: false, visibility: false});
var garagi = new OpenLayers.Layer.WMS( 'гаражи', mapsrvpath, {map: mappath, layers: 'garagi',transparent:"true"},{isBaseLayer: false, visibility: false});
map.addLayers([wms,wmss,lesxoz,dom,street,garagi,selected]);
map.zoomToMaxExtent();
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
////////////////////////////////////////////////////////////
//получение аттрибуов точки
var click_ctrl = new OpenLayers.Control.WMSGetFeatureInfo({
url: "http://xn--26-6kc4btrhf0b.xn--p1ai/cgi-bin/mapserv?/var/www/maps/w.map",
layers: [wmss],
queryVisible: true,
infoFormat: 'application/vnd.ogc.gml',
maxFeatures: 50,
autoActivate: true,
// Vendor-specific параметр, используемый в MapServer (радиус поиска объектов в пикселях)
vendorParams: {
radius: 10
},
eventListeners: {
'getfeatureinfo': function(e) {
alert(e.text);
},
'beforegetfeatureinfo': function(e) {
//alert('beforegetfeatureinfo');
},
'nogetfeatureinfo': function(e) {
//alert('nogetfeatureinfo');
console.log(e.text);
alert(e.text);
},
'activate': function(e) {
//alert('activate');
},
'deactivate': function(e) {
//alert('deactivate');
}
}
});
// Добавляем контрол на карту
map.addControl(click_ctrl);
...
</script>
Файл python.cgi скачан по твоей ссылке. В чем проблема?