簡體   English   中英

如何使用 NUXT.js 為我的傳單地圖設置自定義標記圖標

[英]How can I set the custom marker icon for my leaflet map with NUXT.js

我正在嘗試更改 OpenStreetMap 上單獨標記的標記圖標。

  mapIconsReinit(L) {
    delete L.Icon.Default.prototype._getIconUrl;

    L.Icon.Default.imagePath = ''
    L.Icon.Default.mergeOptions({
      iconRetinaUrl: require('@/assets/img/map_markers/default/marker-icon-2x.png'),
      iconUrl: require('@/assets/img/map_markers/default/marker-icon.png'),
      shadowUrl: require('@/assets/img/map_markers/default/marker-shadow.png'),
    });
  },

  getMarkerIcon(L, color) {
    return L.divIcon({
      iconRetinaUrl: require('@/assets/img/map_markers/marker-icon-2x-' + color + '.png'),
      iconUrl: require('@/assets/img/map_markers/marker-icon-' + color + '.png'),
      shadowUrl: require('@/assets/img/map_markers/marker-shadow.png'),
      iconSize: [25, 41],
      iconAnchor: [12, 41],
      popupAnchor: [1, -34],
      shadowSize: [41, 41]
    })
  }

第一個函數適用於像'@/...'這樣'@/...'路徑,但第二個函數 - 不。

默認標記工作正常:

L.marker([marker.lat, marker.lng]).addTo(_context.map)

但如果我嘗試使用自定義標記:

L.marker([marker.lat, marker.lng], {icon: this.getMarkerIcon(L, "red")}).addTo(_context.map)

我看到一個白色方塊

在此處輸入圖片說明

您實例化一個 Leaflet DivIcon,同時傳遞適用於 Leaflet Icon 的選項。

在這種情況下使用L.icon而不是L.divIcon

Icon 需要 iconUrl(和其他 *Url)選項將相應的圖像放置在地圖上。

DivIcon 不放置圖像,而是放置一個裸 HTML div 元素,因此您可以用任意 HTML 內容填充它。 默認情況下,它的樣式為帶有黑色邊框的白色方塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM