Hello list,

In my project I have 4 maps at one side.
In this maps I show polygon. In each map is the same boundaries but in 
dieffernt timestamps. First map shows a layer in 1980, second map shows the map 
in 1990, third in 2000 and last in 2010.
In each year the layer is colored different.
Now I try to realise a click event on the maps. I will get some feature info.

OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
                                                        defaultHandlerOptions: {
                                                            'single': true,
                                                            'double': false,
                                                            'pixelTolerance': 0,
                                                            'stopSingle': false,
                                                            'stopDouble': false
                                                        },

                                                        initialize: 
function(options) {
                                                            this.handlerOptions 
= OpenLayers.Util.extend(
                                                                {}, 
this.defaultHandlerOptions
                                                            );
                                                            
OpenLayers.Control.prototype.initialize.apply(
                                                                this, arguments
                                                            );
                                                            this.handler = new 
OpenLayers.Handler.Click(
                                                                this, {
                                                                    'click': 
this.trigger
                                                                }, 
this.handlerOptions
                                                            );
                                                        },

                                                        trigger: function(e) {
                                                                                
                                                
                                                                                
var lonlat = map.getLonLatFromViewPortPx(e.xy);                                 
                        
                                                                                
var bfsCode = bfsNum(lonlat.lon,lonlat.lat,jahr,indikator1);
                                                                                
var aggregat = aggregatNr(bfsCode,vis);
                                        
                                                                                
getHighlightLayer(vis,bfsCode,aggregat);
                                                                        
                                                                                
newLoad(lonlat.lon,lonlat.lat,jahr,indikator1,"nodeListL",vis);
                                                                                
                                                                                
// ein-/ausblenden des Infokastens
                                                                                
if (nodeListL.style.display == "none") {                                        
                        
                                                                                
        toggleMe('nodeListL');                                                  
                
                                                                                
}
                                                                                
                                                                                
                                                                                
                                                                    }
                                                                                
                                                                
            });


In the trigger I first get the coordinates (var lonlat) and then I made a query 
to the Postgres Database (newload(...)).
But of course this only work for the first map, because of the different 
coordinates. (map.getLonLatFromViewPort)
Here I must use the coordinates from the different maps but I don't know how I 
can realise this. Is there a possibility to get the map in this function? I 
need the coordinates from the map where I have clicked.
Can somebody help me? I only want to get the infos from the database with the 
click. Perhaps there is another usefull workflow to get this featureinfos?
I use UMN Mapserver and OpenLayers 2.8. The Database is PostGIS 8. The Layer is 
used as a WMS Layer.

var wms = new OpenLayers.Layer.WMS("Gemeinden",urlArray, 
{map:mapFile,layers:layerName+",Seen",format:"image/png",EXCEPTIONS:"application/vnd.ogc.se_inimage"},{singleTile:
 true, ratio:1} ); 

This layer will be styled differently for each year with sld and the 
"mergeNewParams"-Function.

Perhaps somebody can help me, please. I have no idea.

Greetings
Hanno Rahn



------------------------------------------
Hanno Rahn, Dipl.-Ing. (FH) Geoinformatik
ZHAW Zürcher Hochschule für Angewandte Wissenschaften Umwelt und Natürliche 
Ressourcen 
Fachstelle Geoinformatik 
Grüental, Postfach CH-8820 Wädenswil 
Tel +41 (0)58 934 5592
Fax +41 (0)58 934 5580 
[email protected]
www.iunr.zhaw.ch/geoinformatik

 
 

_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users

Reply via email to