I have defined my own featureOverlay for the purposes of highlighting any 
polygon layer I hover over.  When I try to make this work with 
featureOverlay.getSource(), I get the error featureOverlay.getSource() is 
not a function.  Below is the code where I define my feature Overlay, as 
well as the functionality for adding the featureOverlay(which is 
essentially a new Overlay with designated highlight details.  

const featureOverlay = new Overlay({
            source: new VectorSource(),
            zIndex: 0,
            map: map,
            style: new ol.style.Style({
                stroke: new ol.style.Stroke({
                    color: [155, 155, 0],
                    width: 3.5
                }),
                fill: new ol.style.Fill({
                    color: 'rgba(0, 0, 0, 0.8)'
                })
            })
        });

    map.on('pointermove', function(e){



      if (cursorSet) return;
         if (e.dragging) return;
         var pixel = map.getEventPixel(e.originalEvent);
         var hit = map.hasFeatureAtPixel(pixel);
         // console.log("Place break point here")
         if(hit) {
           var feature = 
map.forEachFeatureAtPixel(e.pixel,function(feature) {
                    if (clicked && feature) {
                        e.map.getTargetElement().style.cursor = hit ? 
'pointer' : '';
                        cursorSet = true;
                        return;
                        console.log("clicked and Feature");
                    }
                    featureToRemove = feature;
                    if (!clicked && feature !== highlight) {
                        if (highlight) {
                            
featureOverlay.getSource().removeFeature(highlight);
                        }
                        if (!clicked && feature) {
                            featureOverlay.getSource().addFeature(feature);
                        }
                        console.log("Hit me man")
                        highlight = feature;
                    }

                });
            } else {
                console.log("do something ELSE")
            }
  });

-- 
You received this message because you are subscribed to the Google Groups 
"OpenLayers Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/openlayers-dev.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/openlayers-dev/463fbd76-9b5c-490d-a221-cf1796de6783%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
  • [openlaye... openlayers-dev+APn2wQf6yPAG5jfpvlEgBdfCja2m6VZgriypKtB35_uqXQWRh
    • Re: ... OpenLayers Dev on behalf of Richard Greenwood

Reply via email to