更改单击传单上的标记图标

时间:2017-08-24 07:17:25

标签: leaflet marker

Original-markerIcon = leaflet / images / marker-icon-2x.png current-markerIcon = leaflet / images / map-marker.png

我有很多标记,我想更改当前点击标记的标记图标。如果我再次点击另一个标记,请将所有标记图标更改为原始标记,并将当前标记更改为当前图标。

我还为每个标记贴上了标签。 当我点击当前图标时,我想要更改该标记的标签或删除标签。

我怎样才能做到这一点?

谢谢你。 enter image description here 使用original-markerIcon可见标记的图像

修改-1

L.Icon.Change = L.Icon.Default.extend({
                        options: {
                            iconUrl: 'leaflet/images/map-marker.png',
                            iconSize: new L.Point(150, 75),
                        }
                    });
                    var changeIcon = new L.Icon.Change();

                    L.Icon.Original = L.Icon.Default.extend({
                        options: {
                            iconUrl: 'leaflet/images/marker-icon-2x.png',
                            iconSize: new L.Point(45, 81),
                        }
                    });
                    var originalIcon = new L.Icon.Original();

                    marker.on('click',function(e){
                        for(var i = 0 ; i < $scope.markers.length ; i++){
                            $scope.markers[i].setIcon(originalIcon);
                        }


                    })


                    // marker click event to show the center pano
                    $scope.markers[index].on('click',function(e){
                        $scope.markers[index].setIcon(changeIcon);
                     });

1 个答案:

答案 0 :(得分:0)

如果我没有误会,有一个名为&#34; eachLayer&#34;在地图中。我想当你创建一个标记时,传单会给出一个自动ID。所以你必须在&#34; eachLayer&#34;中提供该ID。功能。当它找到合适的标记时,应该有一个函数&#34; popupclose&#34;。如果你展示你的代码,添加它会更好......!