关于typescript:如何在Angular中显示Leaflet标记?

How to show Leaflet markers in Angular?

我正在使用传单,经过大量研究,我仍然无法在地图上显示标记。

我尝试了所有可以找到的解决方案。甚至Leaflet建议的angular解决方法。现在,我设法获得了标记img,并带有正确的路径以呈现到html中,但它仍然不显示图像。换句话说,我找到了正确的路径,找到了图像,可以在控制台中看到所有内容,但是然后说无法加载图像,这颇具误导性,因为图像

绝对没有问题。

下面是我的代码:

1
2
3
4
5
let markerIcon = L.icon({ iconUrl: 'src/assests/icons/marker.png'});
L.marker([48.208, 16.373], {
      icon: markerIcon,
      riseOnHover: true
}).addTo(map);

下面是具有正确路径和所有内容的浏览器中呈现的html的控制台:

1
<img src="src/assests/icons/marker.png" class="leaflet-marker-icon leaflet-zoom-animated leaflet-interactive" alt="" tabindex="0" style="transform: translate3d(659px, 207px, 0px); z-index: 207;">

我只是想显示那个标记!没有标记,我的整个项目将毫无用处。


您需要传递一个图标对象,该对象将定义标记图像的路径,如下所示:

1
2
3
4
5
6
7
8
9
icon = {
    icon: L.icon({
      iconSize: [ 25, 41 ],
      iconAnchor: [ 13, 0 ],
      // specify the path here
      iconUrl: './node_modules/leaflet/dist/images/marker-icon.png',
      shadowUrl: './node_modules/leaflet/dist/images/marker-shadow.png'
   })
};

,然后const marker = L.marker([51.5, -0.09], this.icon).addTo(map);

无需在资产文件夹中包含标记的图像,因为它已经包含在Leaflet包中。

这是一个工作的演示,带有标记和使用最新angular版本的弹出窗口。