Hey list,
I have a question on the OpenLayers Cluster strategy and displaying attributes:
The situation: I have a map loading quite a number of points from a dynamically 
generated GML. Currently, I am not using a cluster strategy, but the handling 
gets more and more difficult. When I hover the points, I send the 
feature.attributes.Name content (Content of the Name attribute in the GML) to a 
function for displaying a tooltip. No problem until I want to cluster the 
features. I understand, that after clustering, the attribute "Name" doesn't 
exist anymore. What I want to do now is, when it is a cluster of more than one 
feature, I want to send "Cluster of feature.attributes.count" to my tooltip 
function, which is also not a problem, but, if there is only one feature in the 
cluster, I want to send the feature.attributes.Name of that feature to the 
tooltip function. I hope you understand what I am trying to achieve. 
Here are the code fragments I am using at the moment:
--- The layer is generated with the following function (already including the 
cluster strategy): ---
...
pointLayer = new OpenLayers.Layer.Vector("Wasserhäuschen", {            
strategies: [new OpenLayers.Strategy.Fixed(), new 
OpenLayers.Strategy.Cluster()],            attribution:"Dateneigentum: <a 
href='http://www.linie11.org' target='_blank'>linie11.org</a> <a 
href='http://www.l-11.de' target='_blank'><img src='./img/l11_attr.png' 
border='0'></a><br><br>",            protocol: new OpenLayers.Protocol.HTTP({   
             url: "./geoData/data.xml.gml",                format: new 
OpenLayers.Format.GML()            }),                      styleMap: new 
OpenLayers.StyleMap({'default':defaultStyle,                                    
                       'select':selectStyle,                                    
                       'temporary':tempStyle                                    
                                                  },{                context: { 
                 // ...                  label: function(feature) {             
       // clustered features count or blank if feature is not a cluster         
           return feature.cluster ? feature.cluster.count : "";                 
   }                  // ..                }
                        })});
...
--- EOF ---
--- The code of the hover listener, that sends the data to the function 
openToolTip: ---
...
                var highlightCtrl = new OpenLayers.Control.SelectFeature(       
             pointLayer,                    {                            hover: 
true,                            highlightOnly: false,                          
  clickout: false,                            toggle: false,                    
        multiple: false,                            renderIntent: "select",     
                       overFeature: function(feature) {                         
           console.log('hover out:  ' + feature.attributes.count);              
                      openToolTip('Cluster of ' + feature.attributes.count);    
                        },                            outFeature: 
function(feature) {                                    console.log('hover out:  
' + feature.attributes.count);                                    
closeToolTip();                            },                    }              
  );
...
--- EOF ---
To my understanding, I somehow need to access the attributes of the feature 
selected. But I have absolutely no idea how to do this, and I hope to get a 
little help from you guys!
Thanks in advance,Freddy                                          
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to