Hi all,I have a quite small problem with my OL Script. What my current map 
looks like: I have a base OSM map and a GML layer loaded. The layer is loaded 
as a vector layer with the format GML. When I select one of the features of the 
GML layer, a function is called (currently, making a div visible, and on 
unselect, hide the div. This is done via the OpenLayers.Control.SelectFeature 
and the onSelect function.So far, so good. What I am trying to do now, is 
gathering information from the selected feature and hand it to the called 
function, so that I can fill the appearing div with data I get from the 
database in a later step using AJAX. I hope you get what I am trying to do. The 
missing link is to get the information from the feature to the function 
"openDetail () ". This is my current file:[...]                     
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.getLonLatFromPixel(e.xy);                                            
openFormAdd(lonlat.lat,lonlat.lon);                    //alert("You clicked 
near " + lonlat.lat + " N, " +                    //                          + 
lonlat.lon + " E");                }
            });                         var map, layer, pointLayer;
        function init() {            if (!OpenLayers.CANVAS_SUPPORTED) {        
        var unsupported = OpenLayers.Util.getElement('unsupported');            
    unsupported.innerHTML = 'Your browser does not support canvas, nothing to 
see here !';            }
            layer = new OpenLayers.Layer.OSM('Simple OSM Map', null, {          
      eventListeners: {                    tileloaded: function(evt) {          
              var ctx = evt.tile.getCanvasContext();                        if 
(ctx) {                            var imgd = ctx.getImageData(0, 0, 
evt.tile.size.w, evt.tile.size.h);                            var pix = 
imgd.data;                            for (var i = 0, n = pix.length; i < n; i 
+= 4) {                                pix[i] = pix[i + 1] = pix[i + 2] = (3 * 
pix[i] + 4 * pix[i + 1] + pix[i + 2]) / 8;                            }         
                   ctx.putImageData(imgd, 0, 0);                            
evt.tile.imgDiv.removeAttribute("crossorigin");                            
evt.tile.imgDiv.src = ctx.canvas.toDataURL();                        }          
          }                }            });                                     
       pointLayer = new OpenLayers.Layer.Vector("GeoJSON", {            
strategies: [new OpenLayers.Strategy.Fixed()],            protocol: new 
OpenLayers.Protocol.HTTP({                url: 
"http://127.0.0.1/L11/geoData/data.xml.gml";,                format: new 
OpenLayers.Format.GML()            })                   });

            map = new OpenLayers.Map('map', {                layers: [layer, 
pointLayer],                zoom: 3,                center: [-1081125, 6212801] 
           });                                                                  
           var click = new OpenLayers.Control.Click();                
map.addControl(click);                               //click.activate();        
                                             clickFeature = new 
OpenLayers.Control.SelectFeature(                       [pointLayer],           
                {                               clickout: true, toggle: false,  
                                multiple: false, hover: false,                  
                hover:                          }                    );         
                                                                     
map.addControl(clickFeature);                                                   
        pointLayer.events.on({                             "featureselected": 
function(e) {                                             //drag.activate();    
                                          openDetail();                         
     },                              "featureunselected": function(e) {         
                                  closeDetail();                             }  
                     });                                          
clickFeature.activate();                                        
map.addControl(new OpenLayers.Control.LayerSwitcher());        }                
[...]                                   function openDetail () {                
                
document.getElementById("contentLayerDetail").style.visibility='visible';       
                }                                       function closeDetail () 
{                               
document.getElementById("contentLayerDetail").style.visibility='hidden';        
                }                       </script>
[...]

I hope somebody can give me a little help with this. 
Thanks in advance,Freddy


                                          
_______________________________________________
Users mailing list
us...@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to