如何在鼠标悬停时更改Leaflet标记颜色?

时间:2014-07-23 17:57:33

标签: maps leaflet geojson markers

我很难弄清楚为什么传单方法setstyle会改变多边形的颜色而不是我的标记的颜色。

Polygon工作正常:

Polygon

但标记不会改变颜色:

Markers

我希望能够将鼠标悬停在标记上并更改其颜色。似乎setStyle会这样做。但我一直在layer.setStyle is not a function

我一起使用Angular和Leaflet制作地图(我使用angular-leaflet-directive)。

这里是代码的鼠标悬停部分:

$scope.$on("leafletDirectiveMap.geojsonMouseover", function (ev, leafletEvent) {
        pointMouseover(leafletEvent);
    });

    function pointMouseover(leafletEvent) {
        var layer = leafletEvent.target;
        layer.setStyle({
            weight: 2,
            color: '#666',
            fillColor: 'white'
        });
    }

当标记被鼠标移过时,它会触发pointMousever,然后尝试在LeafletEvent.target上调用setStyle。我已经控制了。记录了LeafletEvent,确实有它的Target部分:

Target

为什么setStyle适用于多边形而不适用于标记?改变标记颜色的方法是什么?

1 个答案:

答案 0 :(得分:2)

通过阅读一些文档来弄清楚。

传单中的多边形响应setStyle,但可以使用setIcon更改标记

Documentation for setIcon