using measure control each time when i click to paritial measure distance, 
point feature is added to vector layer. i call tooltipPopup function on 
mouseover the feature. but it wan't draw a popup, giving me some kind of 
event.feature problem

  markers = new OpenLayers.Layer.Vector("Markers"); 
                                  map.addLayers([markers]);
                                  
                                        var bot = new OpenLayers.Control.Button
({
                                displayClass: 'olIkonaUdalj',
                                eventListeners: {
                                        'activate': klikLivo,
                                        'deactivate': brisMarkera}, 
                                        type: 2
                                        });
                                        
                                
                                        var kontr = new OpenLayers.Control.Panel
({
                                         div: document.getElementById("bp"),
                                    //defaultControl: bot
                                        });  
                                kontr.addControls([bot]);       
            map.addControl(kontr);       
            
            function klikLivo(event) {
                
                /*
                                if(markers.features.length==0) return;   
                                var i = markers.features.length - 1;
                                tocke.push(markers.features
[i].geometry);        
            var lineString = new OpenLayers.Geometry.LineString(tocke);
            var lineFeature = new OpenLayers.Feature.Vector(lineString);
 
                 poli.addFeatures([lineFeature]);
           */
                        pn.deactivate();
           var crta = new OpenLayers.Control.Measure(OpenLayers.Handler.Path, 
{persist: true});
            
                crta.events.on({
                    "measure": handleMeasurements,
                    "measurepartial": handleMeasurements
                });
                map.addControl(crta);
                crta.activate();
               
                function handleMeasurements(event) {
                                          
            tocke = [];
            markers.destroyFeatures();
            var geometry = event.geometry;            
            var units = event.units;
            var order = event.order;
            var measure = event.measure;
            var element = document.getElementById('au');
            tocke.push(geometry); 
            for(i=0; i<(tocke[0].components.length); i++){
            var pointsGeometry = new OpenLayers.Geometry.Point(tocke
[0].components[i].x, tocke[0].components[i].y);
            feature =  new OpenLayers.Feature.Vector(pointsGeometry);
            markers.addFeatures([feature]);
            }
            var selectControl = new OpenLayers.Control.SelectFeature(markers, 
{hover: true, onSelect: selektirano, onUnselect: us});
                                map.addControl(selectControl);
                                selectControl.activate(); 
                                var lastFeature = null;
                                var tooltipPopup = null;
            var out = "";
            if(order == 1) {
                out += "Udaljenost: " + measure.toFixed(2) + " " + units;
            } else {
                out += "measure: " + measure.toFixed(3) + " " + units + 
"<sup>2</" + "sup>";
            }
            element.innerHTML = out;
        }
            


    }

function selektirano(event){
                  var feature = event.feature;
        
                  tooltipPopup = new OpenLayers.Popup("activetooltip",
                    feature.geometry.getBounds().getCenterLonLat(),
                    new OpenLayers.Size(180,50),
                    "nesto", true);
         //this is messy, but I'm not a CSS guru
        tooltipPopup.contentDiv.style.backgroundColor='ffffcb';
        tooltipPopup.closeDiv.style.backgroundColor='ffffcb';
        tooltipPopup.contentDiv.style.overflow='hidden';
        tooltipPopup.contentDiv.style.padding='3px';
        tooltipPopup.contentDiv.style.margin='0';
        tooltipPopup.closeOnMove = true;
        tooltipPopup.autoSize = true;
        feature.popup = tooltipPopup;
        map.addPopup(tooltipPopup);
}
function us(){
        for(i=0; i<map.popups.length; i++){
                map.popups[i].destroy();}
                
 
}

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

Reply via email to