WMaplibreglVue2 - 使用 MapLibre GL JS 重構的地圖組件(Vue 2) 所有面板透過四角容器 (corner container) 自動堆疊,不重疊。
核心業務邏輯已提取至 src/js/ 模組,此元件僅保留:
- 響應式狀態(data / computed / watch)
- 薄委派方法(調用模組函式 + 同步 Vue 狀態)
- Vue 特定操作($nextTick / $refs / $forceUpdate)
Props
| Name | Type | Default value | Required? | Description |
|---|---|---|---|---|
opt |
Object | - | Yes | 輸入資料設定物件 |
opt.center |
Array | [23.5, 121.1] |
No | 輸入地圖顯示中點陣列,陣列為WGS84[緯度,經度],兩值皆須為有限數(數字字串視為非法)且緯度在±90內,否則視為未給(用預設),預設[23.5, 121.1] |
opt.zoom |
Number | 6 |
No | 輸入地圖顯示層級數字,可給數字或數字字串,非數值視為未給(用預設6),範圍由opt.minZoom與opt.maxZoom決定(元件不另夾值),超出範圍者由地圖拉入範圍,使用者縮放、縮放按鈕或API縮放後會把地圖實際層級寫回本欄位(地球投影下實際下限隨緯度略低於minZoom,墨卡托投影下受容器高度限制而略高於minZoom,皆以實際層級為準;地球投影下僅改center時地圖亦會依緯度差調整層級並寫回本欄位),欲於執行期變更或接收寫回須於opt預先宣告此鍵,預設6 |
opt.minZoom |
Number | 0 |
No | 輸入地圖可縮小至之最小顯示層級數字,使用者縮放、縮放按鈕、opt.zoom與API皆受此限制,可給數字或數字字串,夾在0~24,非數值或非有限數視為未給,大於maxZoom時忽略minZoom並console.warn,可於執行期變更(須於opt預先宣告此鍵),預設0 |
opt.maxZoom |
Number | 22 |
No | 輸入地圖可放大至之最大顯示層級數字,給法同minZoom(夾在0~24),可於執行期變更(須於opt預先宣告此鍵),預設22;此為地圖顯示層級上限,與圖磚層級不同(256px圖磚於地圖層級z約請求z+1級),各底圖服務之層級上限請以baseMaps[i].maxzoom設定(超過時改以該級圖磚放大顯示),勿以本欄位遷就單一圖資;欲還原舊版上限18可給18 |
opt.panelBackgroundColor |
String | 'rgba(255,255,255,0.95)' |
No | 輸入各顯示資訊區背景顏色字串,預設'rgba(255,255,255,0.95)' |
opt.projection |
String | '' |
No | 輸入地圖投影方式字串,''代表自動(顯示層級≤8用球面globe、以上用平面mercator),可選'globe'、'mercator',預設'' |
opt.displayPopupOnlyone |
Boolean | true |
No | 輸入是否同時只顯示一個popup布林值,開啟時點擊新圖徵會關閉其他已開的popup,預設true |
opt.displayOrderByType |
Boolean | true |
No | 輸入是否依圖徵型別面積序堆疊布林值,開啟時圖層由上而下為點>線>面>等值線>影像,且點擊命中最上層型別(小面積優先),預設true |
opt.popupPosition |
String | 'top' |
No | 輸入popup預設彈出方向字串,可選'top'、'bottom'、'left'、'right',靠近地圖邊緣時會自動翻轉,預設'top' |
opt.tooltipPosition |
String | 'left' |
No | 輸入tooltip預設彈出方向字串,可選'top'、'bottom'、'left'、'right',預設'left' |
opt.panelsOrder |
Array | 詳見程式碼 |
No | 輸入各角落內面板的堆疊順序陣列,預設值詳見程式碼的defPanelsOrder |
opt.popupResize |
Object | {} |
No | 輸入popup可拖曳調整大小的設定物件,預設{} |
opt.popupResize.resizable |
Boolean | false |
No | 輸入是否開啟popup四邊/四角拖曳調整大小布林值,false時為純穿透、行為與未啟用一致,預設false |
opt.popupResize.resizeModes |
Array | 詳見程式碼 |
No | 輸入可拖曳的把手方向陣列,元素可為'top'、'bottom'、'left'、'right'、'top-left'、'top-right'、'bottom-left'、'bottom-right',預設為八向全開 |
opt.popupResize.minWidth |
Number | 200 |
No | 輸入popup可調整的最小寬度數字,單位px,預設200 |
opt.popupResize.minHeight |
Number | 200 |
No | 輸入popup可調整的最小高度數字,單位px,預設200 |
opt.popupResize.width |
Number | 400 |
No | 輸入popup初始寬度數字,單位px,預設400 |
opt.popupResize.height |
Number | 300 |
No | 輸入popup初始高度數字,單位px,預設300 |
opt.clusterPoints |
Boolean | false |
No | 輸入是否啟用點叢集布林值,預設false |
opt.clusterPointsRadius |
Number | 50 |
No | 輸入點叢集半徑數字,單位px,預設50 |
opt.clusterPointsMaxZoom |
Number | 14 |
No | 輸入點叢集套用的最大顯示層級數字,預設14 |
opt.clusterPointsLevelNum |
Number | 3 |
No | 輸入點叢集分級數量數字(需≥1),預設3 |
opt.clusterPointsLevelValues |
Array | [10,100] |
No | 輸入點叢集各級的點數門檻陣列,長度需為分級數量-1,預設[10,100] |
opt.clusterPointsLevelRadius |
Array | [10,15,20] |
No | 輸入點叢集各級的圓半徑陣列,單位px,長度需為分級數量,預設[10,15,20] |
opt.clusterPointsLevelFillColors |
Array | 詳見程式碼 |
No | 輸入點叢集各級的填充顏色陣列,長度需為分級數量,預設值詳見程式碼 |
opt.clusterPointsLevelLineColors |
Array | ['#fff','#fff','#fff'] |
No | 輸入點叢集各級的框線顏色陣列,預設['#fff','#fff','#fff'] |
opt.clusterPointsLevelLineWidths |
Array | [2,2,2] |
No | 輸入點叢集各級的框線寬度陣列,單位px,預設[2,2,2] |
opt.clusterPointsLevelTextSizes |
Array | [12,12,12] |
No | 輸入點叢集各級的計數文字大小陣列,單位px,預設[12,12,12] |
opt.clusterPointsLevelTextColors |
Array | ['#fff','#fff','#fff'] |
No | 輸入點叢集各級的計數文字顏色陣列,預設['#fff','#fff','#fff'] |
opt.panelBaseMaps.show |
Boolean | true |
No | 輸入是否顯示底圖選擇區布林值,預設true |
opt.panelBaseMaps.baseMaps |
Array | 詳見程式碼 |
No | 輸入底圖選擇清單陣列,各元素為底圖設定物件(欄位見下),預設值詳見程式碼的defBaseMaps |
opt.panelBaseMaps.baseMaps[i].name |
String | 詳見程式碼 |
No | 輸入第i個底圖的名稱字串,供面板清單顯示 |
opt.panelBaseMaps.baseMaps[i].url |
String | 詳見程式碼 |
No | 輸入第i個底圖的連結字串,依type而異:raster為圖磚網址樣板,支援{s}(子網域a/b/c)、{z}/{x}/{y}、//(自動補https),maplibre原生之{quadkey}、{bbox-epsg-3857}等佔位符原樣支援;wms為服務端點(自動附加GetMap參數);vector為TileJSON網址(支援//自動補https,不支援圖磚樣板與{s});style為MapLibre style JSON網址。url非有效字串之條目會被略過(console.warn)且不影響其他條目 |
opt.panelBaseMaps.baseMaps[i].type |
String | raster |
No | 輸入第i個底圖的來源類型字串,省略代表raster圖磚,可為'wms'、'vector'、'style'(url指向完整MapLibre style JSON,整組sources/layers注入現有地圖,glyphs/sprite為全域單例由最後套用者決定),預設raster |
opt.panelBaseMaps.baseMaps[i].colorShade |
String | '' |
No | 輸入第i個底圖的色調字串,非空(如'light'/'dark')代表底圖(radio單選),空字串''代表疊加層(checkbox多選並有透明度滑桿),預設'' |
opt.panelBaseMaps.baseMaps[i].visible |
Boolean | false |
No | 輸入是否顯示第i個底圖布林值,預設false |
opt.panelBaseMaps.baseMaps[i].opacity |
Number | 1 |
No | 輸入第i個底圖的透明度數字(0~1),可給數字或數字字串,超出範圍夾限、非數值視為未給,raster與wms預設1、vector預設0.8(疊加層面板滑桿與實繪一致),type為'style'時不支援(各層自帶opacity,面板亦不顯示滑桿) |
opt.panelBaseMaps.baseMaps[i].layerType |
String | 'fill' |
No | 輸入第i個底圖(type為vector時)的圖層類型字串,可選'fill'、'line'、'fill-extrusion',預設'fill' |
opt.panelBaseMaps.baseMaps[i].layer |
String | '' |
No | 輸入第i個底圖(type為vector時)的source-layer名稱字串,預設'' |
opt.panelBaseMaps.baseMaps[i].layers |
String | '' |
No | 輸入第i個底圖(type為wms時)的LAYERS參數字串,預設'' |
opt.panelBaseMaps.baseMaps[i].maxzoom |
Number | null |
No | 輸入第i個底圖(type為raster、wms、vector時)的圖磚來源最大層級整數,即服務實際提供圖磚之最深「圖磚層級」(非地圖顯示層級:256px圖磚於地圖層級z時約請求z+1級),超過時改以該級圖磚放大顯示,避免請求不存在之層級致圖層空白並報錯,圖台可放大至opt.maxZoom(預設22,此時請求之圖磚層級可達23),故服務層級未達該值之圖磚服務須給本欄位,可給數字或數字字串,小數無條件捨去,負數、非有限數或非數值視為未給,不給則沿用maplibre預設(raster與wms為22,vector依其TileJSON),vector僅宜往內限縮TileJSON之範圍(大於TileJSON者會請求不存在之層級),type為'style'時不適用(由style JSON自帶),預設null |
opt.panelBaseMaps.baseMaps[i].minzoom |
Number | null |
No | 輸入第i個底圖(type為raster、wms、vector時)的圖磚來源最小層級整數,需求之圖磚層級低於此值時不請求圖磚且該處不顯示(地圖俯視或開啟地形時,遠景低於此層級之區域亦不顯示),給法同maxzoom但小數無條件進位,須不大於服務最大層級,與maxzoom同時給且大於maxzoom時忽略minzoom,不給則沿用maplibre預設(raster與wms為0,vector依其TileJSON),type為'style'時不適用,預設null |
opt.panelBaseMaps.baseMaps[i].colorFillExtrusion |
String | null |
No | 輸入第i個底圖(layerType為fill-extrusion時)的統一建物顏色字串,不傳則回退用資料colour屬性,預設null |
opt.panelBaseMaps.position |
String | 'topleft' |
No | 輸入底圖選擇區位置字串,可選'topleft'、'topright'、'bottomleft'、'bottomright',預設'topleft' |
opt.panelBaseMaps.width |
Number | null |
No | 輸入底圖選擇區寬度數字,單位px,預設null |
opt.panelBaseMaps.maxWidth |
Number | null |
No | 輸入底圖選擇區最大寬度數字,單位px,預設null |
opt.panelBaseMaps.height |
Number | null |
No | 輸入底圖選擇區高度數字,單位px,預設null |
opt.panelBaseMaps.maxHeight |
Number | null |
No | 輸入底圖選擇區最大高度數字,單位px,預設null |
opt.panelBaseMaps.stopWheel |
Boolean | false |
No | 輸入底圖選擇區當過高出現垂直捲軸時,是否可接收捲軸布林值,預設false |
opt.panelBaseMaps.terrainMap |
Object | 詳見程式碼 |
No | 輸入3D地形設定物件,不給則使用程式碼的defTerrainMap(遠端DEM),給物件即整組取代預設(未給之欄位不繼承預設,例如只給exaggeration則無地形),給{}則不套用地形,預設值詳見程式碼的defTerrainMap |
opt.panelBaseMaps.terrainMap.terrainSource.url |
String | - | No | 輸入地形DEM圖磚網址樣板字串,支援{z}/{x}/{y}、//(自動補https),未給則不套用地形(陰影亦不套用) |
opt.panelBaseMaps.terrainMap.terrainSource.encoding |
String | 'terrarium' |
No | 輸入地形DEM編碼字串,可選'terrarium'、'mapbox',預設'terrarium' |
opt.panelBaseMaps.terrainMap.terrainSource.tileSize |
Number | 256 |
No | 輸入地形DEM圖磚尺寸數字,單位px,預設256 |
opt.panelBaseMaps.terrainMap.terrainSource.maxzoom |
Number | null |
No | 輸入地形DEM圖磚來源最大層級整數,給法同baseMaps[i].maxzoom,預設null(defTerrainMap給13) |
opt.panelBaseMaps.terrainMap.exaggeration |
Number | 1.5 |
No | 輸入地形高度誇張倍率數字,預設1.5 |
opt.panelBaseMaps.terrainMap.hillshadeSource |
Object | null |
No | 輸入陰影DEM來源設定物件,欄位同terrainSource(url、encoding、tileSize、maxzoom),須同時給有效之terrainSource才生效,url與terrainSource.url相同時共用地形來源(encoding、tileSize、maxzoom以terrainSource為準),不給則不顯示陰影,預設null |
opt.panelBaseMaps.terrainMap.hillshadeExaggeration |
Number | 0.5 |
No | 輸入陰影強度數字,預設0.5 |
opt.panelLabels.show |
Boolean | true |
No | 輸入是否顯示地圖資訊區布林值,預設true |
opt.panelLabels.position |
String | 'topright' |
No | 輸入地圖資訊區位置字串,可選'topleft'、'topright'、'bottomleft'、'bottomright',預設'topright' |
opt.panelLabels.title |
String | '' |
No | 輸入地圖資訊區內標題字串,預設'' |
opt.panelLabels.lng |
String | 'Longitude' |
No | 輸入地圖資訊區內標注經度字串,預設'Longitude' |
opt.panelLabels.lat |
String | 'Latitude' |
No | 輸入地圖資訊區內標注緯度字串,預設'Latitude' |
opt.panelLabels.zoom |
String | 'Zoom' |
No | 輸入地圖資訊區內標注顯示層級字串,預設'Zoom' |
opt.panelLabels.useItems |
Array | ['lng','lat','zoom'] |
No | 輸入地圖資訊區內呈現項目陣列,各元素給字串,'lng'代表經度,'lat'代表緯度,'zoom'代表顯示層級,預設['lng','lat','zoom'] |
opt.panelLabels.width |
Number | null |
No | 輸入地圖資訊區寬度數字,單位px,預設null |
opt.panelLabels.maxWidth |
Number | null |
No | 輸入地圖資訊區最大寬度數字,單位px,預設null |
opt.panelLabels.height |
Number | null |
No | 輸入地圖資訊區高度數字,單位px,預設null |
opt.panelLabels.maxHeight |
Number | null |
No | 輸入地圖資訊區最大高度數字,單位px,預設null |
opt.panelCompassRose.show |
Boolean | false |
No | 輸入是否顯示玫瑰羅盤區布林值,預設false |
opt.panelCompassRose.position |
String | 'topright' |
No | 輸入玫瑰羅盤區位置字串,可選'topleft'、'topright'、'bottomleft'、'bottomright',預設'topright' |
opt.panelCompassRose.size |
Number | 120 |
No | 輸入玫瑰羅盤區尺寸(長寬)數字,單位px,預設120 |
opt.panelCompassRose.withPanel |
Boolean | false |
No | 輸入是否顯示玫瑰羅盤區底部面板布林值,預設false |
opt.panelCompassRose.iconSrcLight |
String | 詳見程式碼 |
No | 輸入淺色系玫瑰羅盤圖標來源字串,可使用base64格式或網址,預設值詳見程式碼 |
opt.panelCompassRose.iconSrcDark |
String | 詳見程式碼 |
No | 輸入深色系玫瑰羅盤圖標來源字串,可使用base64格式或網址,預設值詳見程式碼 |
opt.panelCompassRose.iconSrc |
String | null |
No | 輸入玫瑰羅盤圖標來源字串,若有則直接使用;若為null則withPanel為true時用iconSrcDark,否則自動依底圖colorShade決定(空或'light'用iconSrcDark,'dark'用iconSrcLight),預設null |
opt.panelCompass3d.show |
Boolean | true |
No | 輸入是否顯示3D指北針區布林值(可點擊重設正北/俯仰),預設true |
opt.panelCompass3d.position |
String | 'topright' |
No | 輸入3D指北針區位置字串,可選'topleft'、'topright'、'bottomleft'、'bottomright',預設'topright' |
opt.panelCompass3d.size |
Number | 44 |
No | 輸入3D指北針尺寸數字,單位px,預設44 |
opt.panelZoom.show |
Boolean | true |
No | 輸入是否顯示縮放按鈕區布林值,預設true |
opt.panelZoom.position |
String | 'bottomleft' |
No | 輸入縮放按鈕區位置字串,可選'topleft'、'topright'、'bottomleft'、'bottomright',預設'bottomleft' |
opt.panelScale.show |
Boolean | true |
No | 輸入是否顯示比例尺區布林值,預設true |
opt.panelScale.position |
String | 'bottomright' |
No | 輸入比例尺區位置字串,可選'topleft'、'topright'、'bottomleft'、'bottomright',預設'bottomright' |
opt.panelItems.show |
Boolean | true |
No | 輸入圖層顯隱切換區是否顯示布林值,預設true |
opt.panelItems.position |
String | 'topleft' |
No | 輸入圖層顯隱切換區位置字串,可選'topleft'、'topright'、'bottomleft'、'bottomright',預設'topleft' |
opt.panelItems.width |
Number | null |
No | 輸入圖層顯隱切換區寬度數字,單位px,預設null |
opt.panelItems.maxWidth |
Number | null |
No | 輸入圖層顯隱切換區最大寬度數字,單位px,預設null |
opt.panelItems.height |
Number | null |
No | 輸入圖層顯隱切換區高度數字,單位px,預設null |
opt.panelItems.maxHeight |
Number | null |
No | 輸入圖層顯隱切換區最大高度數字,單位px,預設null |
opt.panelItems.stopWheel |
Boolean | false |
No | 輸入圖層顯隱切換區當過高出現垂直捲軸時,是否可接收捲軸布林值,預設false |
opt.panelLegends.show |
Boolean | true |
No | 輸入是否顯示圖例區布林值(僅有可見等值線時呈現),預設true |
opt.panelLegends.position |
String | 'bottomright' |
No | 輸入圖例區位置字串,可選'topleft'、'topright'、'bottomleft'、'bottomright',預設'bottomright' |
opt.panelLegends.width |
Number | null |
No | 輸入圖例區寬度數字,單位px,預設null |
opt.panelLegends.maxWidth |
Number | 300 |
No | 輸入圖例區最大寬度數字,單位px,預設300 |
opt.panelLegends.height |
Number | null |
No | 輸入圖例區高度數字,單位px,預設null |
opt.panelLegends.maxHeight |
Number | null |
No | 輸入圖例區最大高度數字,單位px,預設null |
opt.pointSets |
Array | [] |
No | 輸入點集合陣列,各元素為物件,預設[] |
opt.pointSets[i].title |
String | '' |
No | 輸入第i個點集合的標題字串,預設'' |
opt.pointSets[i].msg |
String | '' |
No | 輸入第i個點集合的說明字串,預設'' |
opt.pointSets[i].key |
String | null |
No | 輸入第i個點集合的穩定識別鍵字串,需於陣列內唯一;提供後陣列插入或重排時該組身分不變(未變更組可增量跳過不重建),未給則以陣列索引識別,預設null |
opt.pointSets[i].order |
Number | null |
No | 輸入第i個點集合的排序用數字,預設null |
opt.pointSets[i].visible |
Boolean | true |
No | 輸入是否顯示第i個點集合布林值,預設true |
opt.pointSets[i].type |
String | 'circle' |
No | 輸入第i個點集合的預設呈現類型字串,可選'circle'(圓)、'icon'(圖標),預設'circle' |
opt.pointSets[i].lineColor |
String | 'rgba(255,255,255,1)' |
No | 輸入第i個點集合(circle)的框線顏色字串,預設'rgba(255,255,255,1)' |
opt.pointSets[i].lineWidth |
Number | 1 |
No | 輸入第i個點集合(circle)的框線寬度數字,預設1 |
opt.pointSets[i].fillColor |
String | 'rgba(0,150,255,0.65)' |
No | 輸入第i個點集合(circle)的填充顏色字串,預設'rgba(0,150,255,0.65)' |
opt.pointSets[i].size |
Number | 10 |
No | 輸入第i個點集合(circle)的圓半徑數字,預設10 |
opt.pointSets[i].iconSrc |
String | 詳見程式碼 |
No | 輸入第i個點集合(icon)的圖標來源字串,可使用base64格式或網址,預設為內建點圖標,詳見程式碼 |
opt.pointSets[i].iconSize |
Array | [24,40] |
No | 輸入第i個點集合(icon)的圖標尺寸陣列[寬,高],單位px,預設[24,40] |
opt.pointSets[i].iconAnchor |
Array | [iconSize[0]/2,iconSize[1]] |
No | 輸入第i個點集合(icon)的圖標定位位置陣列,由圖標左上角起算,往左為+x、往上為+y,單位px,預設[iconSize[0]/2,iconSize[1]] |
opt.pointSets[i].popupAnchor |
Array | [0,-iconSize[1]/1.0] |
No | 輸入第i個點集合顯示popup時的指向偏移陣列[x,y],由實際定位點起算,往右為+x、往下為+y,單位px,未給時自動依半徑或iconSize計算 |
opt.pointSets[i].tooltipAnchor |
Array | [0,-iconSize[1]/1.0] |
No | 輸入第i個點集合顯示tooltip時的指向偏移陣列[x,y],未給時自動依半徑或iconSize計算 |
opt.pointSets[i].points |
Array | [] |
No | 輸入第i個點集合的各點數據陣列,各元素為物件或緯經度陣列(即[{p1},...]或[[lat,lng],...]),預設[] |
opt.pointSets[i].points[j].latLng |
Array | [] |
No | 輸入第i個點集合第j個點的緯經度座標陣列[lat,lng],預設[] |
opt.pointSets[i].points[j].title |
String | '' |
No | 輸入第i個點集合第j個點的標題字串,預設'' |
opt.pointSets[i].points[j].msg |
String | '' |
No | 輸入第i個點集合第j個點的說明字串,預設'' |
opt.pointSets[i].points[j].type |
String | 繼承pointSet |
No | 輸入第i個點集合第j個點的呈現類型字串,可選'circle'、'icon',未給則繼承所屬點集合 |
opt.pointSets[i].points[j].lineColor |
String | 繼承pointSet |
No | 輸入第i個點集合第j個點的框線顏色字串,未給則繼承所屬點集合 |
opt.pointSets[i].points[j].lineWidth |
Number | 繼承pointSet |
No | 輸入第i個點集合第j個點的框線寬度數字,未給則繼承所屬點集合 |
opt.pointSets[i].points[j].fillColor |
String | 繼承pointSet |
No | 輸入第i個點集合第j個點的填充顏色字串,未給則繼承所屬點集合 |
opt.pointSets[i].points[j].size |
Number | 繼承pointSet |
No | 輸入第i個點集合第j個點的圓半徑數字,未給則繼承所屬點集合 |
opt.pointSets[i].points[j].iconSrc |
String | 繼承pointSet |
No | 輸入第i個點集合第j個點的圖標來源字串,未給則繼承所屬點集合 |
opt.pointSets[i].points[j].iconSize |
Array | 繼承pointSet |
No | 輸入第i個點集合第j個點的圖標尺寸陣列[寬,高],未給則繼承所屬點集合 |
opt.pointSets[i].points[j].iconAnchor |
Array | 繼承pointSet |
No | 輸入第i個點集合第j個點的圖標定位位置陣列,未給則繼承所屬點集合 |
opt.pointSets[i].points[j].popupAnchor |
Array | null |
No | 輸入第i個點集合第j個點顯示popup時的指向偏移陣列[x,y],預設null |
opt.pointSets[i].points[j].tooltipAnchor |
Array | null |
No | 輸入第i個點集合第j個點顯示tooltip時的指向偏移陣列[x,y],預設null |
opt.pointSetsClick |
function | function(){} |
No | 輸入全域點集合的click呼叫函數,引數為{ point, pointSet, pointSets },預設function(){} |
opt.polylineSets |
Array | [] |
No | 輸入折線集合陣列,各元素為物件,預設[] |
opt.polylineSets[i].title |
String | '' |
No | 輸入第i個折線集合的標題字串,預設'' |
opt.polylineSets[i].msg |
String | '' |
No | 輸入第i個折線集合的說明字串,預設'' |
opt.polylineSets[i].order |
Number | null |
No | 輸入第i個折線集合的排序用數字,預設null |
opt.polylineSets[i].visible |
Boolean | true |
No | 輸入是否顯示第i個折線集合布林值,預設true |
opt.polylineSets[i].lineColor |
String | 'rgba(0,150,255,1)' |
No | 輸入第i個折線集合的框線顏色字串,預設'rgba(0,150,255,1)' |
opt.polylineSets[i].lineWidth |
Number | 3 |
No | 輸入第i個折線集合的框線寬度數字,預設3 |
opt.polylineSets[i].latLngs |
Array | [] |
No | 輸入第i個折線集合的數據陣列,可為polyline([[lat,lng],...])或multiPolyline,各點座標為緯經度,預設[] |
opt.polylineSetsClick |
function | function(){} |
No | 輸入全域折線集合的click呼叫函數,引數為{ ev, polylineSet, kpolylineSet, polylineSets },預設function(){} |
opt.polygonSets |
Array | [] |
No | 輸入多邊形集合陣列,各元素為物件,預設[] |
opt.polygonSets[i].title |
String | '' |
No | 輸入第i個多邊形集合的標題字串,預設'' |
opt.polygonSets[i].msg |
String | '' |
No | 輸入第i個多邊形集合的說明字串,預設'' |
opt.polygonSets[i].order |
Number | null |
No | 輸入第i個多邊形集合的排序用數字,預設null |
opt.polygonSets[i].visible |
Boolean | true |
No | 輸入是否顯示第i個多邊形集合布林值,預設true |
opt.polygonSets[i].lineColor |
String | 'rgba(0,150,255,1)' |
No | 輸入第i個多邊形集合的框線顏色字串,預設'rgba(0,150,255,1)' |
opt.polygonSets[i].lineWidth |
Number | 3 |
No | 輸入第i個多邊形集合的框線寬度數字,預設3 |
opt.polygonSets[i].fillColor |
String | 'rgba(0,150,255,0.25)' |
No | 輸入第i個多邊形集合的填充顏色字串,預設'rgba(0,150,255,0.25)' |
opt.polygonSets[i].latLngs |
Array | [] |
No | 輸入第i個多邊形集合的數據陣列,各點座標為緯經度,預設[]。可為單一環([[lat,lng],...])、環陣列([[[lat,lng],...],...],代表1個polygon,環間為XOR套疊可表示挖洞)、或polygon陣列([[[[lat,lng],...],...],...],代表1個multiPolygon,各polygon之環各自XOR後合併) |
opt.polygonSetsClick |
function | function(){} |
No | 輸入全域多邊形集合的click呼叫函數,引數為{ ev, polygonSet, kpolygonSet, polygonSets },預設function(){} |
opt.geojsonSets |
Array | [] |
No | 輸入geojson集合陣列,各元素為物件,預設[] |
opt.geojsonSets[i].title |
String | '' |
No | 輸入第i個geojson集合的標題字串,預設'' |
opt.geojsonSets[i].msg |
String | '' |
No | 輸入第i個geojson集合的說明字串,預設'' |
opt.geojsonSets[i].order |
Number | null |
No | 輸入第i個geojson集合的排序用數字,預設null |
opt.geojsonSets[i].visible |
Boolean | true |
No | 輸入是否顯示第i個geojson集合布林值,預設true |
opt.geojsonSets[i].lineColor |
String | 'rgba(0,150,255,1)' |
No | 輸入第i個geojson集合的框線顏色字串,預設'rgba(0,150,255,1)' |
opt.geojsonSets[i].lineWidth |
Number | 3 |
No | 輸入第i個geojson集合的框線寬度數字,預設3 |
opt.geojsonSets[i].fillColor |
String | 'rgba(0,150,255,0.25)' |
No | 輸入第i個geojson集合的填充顏色字串,預設'rgba(0,150,255,0.25)' |
opt.geojsonSets[i].geojson |
Object | {} |
No | 輸入第i個geojson集合的GeoJSON物件(自動拆成點/線/面子圖層),各點座標為緯經度,預設{} |
opt.geojsonSetsClick |
function | function(){} |
No | 輸入全域geojson集合的click呼叫函數,引數為{ ev, lat, lng, geojsonSet, kgeojsonSet, geojsonSets },預設function(){} |
opt.contourSets |
Array | [] |
No | 輸入等值線集合陣列,各元素為物件,預設[] |
opt.contourSets[i].title |
String | '' |
No | 輸入第i個等值線集合的標題字串(圖例與圖層清單顯示用),預設'' |
opt.contourSets[i].msg |
String | '' |
No | 輸入第i個等值線集合的說明字串,預設'' |
opt.contourSets[i].legendMsg |
String | '' |
No | 輸入第i個等值線集合的圖例副標題字串,預設'' |
opt.contourSets[i].order |
Number | null |
No | 輸入第i個等值線集合的排序用數字,預設null |
opt.contourSets[i].visible |
Boolean | true |
No | 輸入是否顯示第i個等值線集合布林值,預設true |
opt.contourSets[i].points |
Array | [] |
No | 輸入第i個等值線集合的數據陣列,各點座標為緯經度,自動以三角網格技術計算等值線,預設[] |
opt.contourSets[i].thresholds |
Array | [] |
No | 輸入第i個等值線集合的門檻值陣列,給予非有效陣列則自動計算各線門檻值,預設[] |
opt.contourSets[i].gradient |
Object | 詳見程式碼 |
No | 輸入第i個等值線集合的色階(color map)設定物件,鍵範圍0至1、值為對應顏色,各鍵之間採內插取色,預設值詳見程式碼 |
opt.contourSets[i].getColor |
function | null |
No | 輸入第i個等值線集合的顏色函數,引數為{ defaultColor, k, n, polygonSet },預設null |
opt.contourSets[i].lineColor |
String | '' |
No | 輸入第i個等值線集合的框線顏色字串,''則用填充顏色,預設'' |
opt.contourSets[i].lineWidth |
Number | 1 |
No | 輸入第i個等值線集合的框線寬度數字,預設1 |
opt.contourSets[i].fillOpacity |
Number | 0.2 |
No | 輸入第i個等值線集合的填充透明度數字,預設0.2 |
opt.contourSets[i].lineColorHover |
String | 同lineColor |
No | 輸入滑鼠移入時第i個等值線集合的框線顏色字串,預設同lineColor |
opt.contourSets[i].lineWidthHover |
Number | 3 |
No | 輸入滑鼠移入時第i個等值線集合的框線寬度數字,預設3 |
opt.contourSets[i].fillOpacityHover |
Number | 0.5 |
No | 輸入滑鼠移入時第i個等值線集合的填充透明度數字,預設0.5 |
opt.contourSets[i].changeStyleWhenHover |
Boolean | true |
No | 輸入第i個等值線集合是否啟用滑鼠移入切換style效果布林值,預設true |
opt.contourSets[i].legendNumDig |
Number | null |
No | 輸入第i個等值線集合對圖例內數字取的小數位數,null代表不取,預設null |
opt.contourSets[i].legendTextFormater |
function | null |
No | 輸入第i個等值線集合對圖例各色階產生顯示文字的函數,引數為{ low, up, legends, index },預設null |
opt.contourSets[i].legendTextExtra |
function | null |
No | 輸入第i個等值線集合對圖例各色階附加額外文字的函數,引數為{ k, n, polygonSet },預設null |
opt.contourSets[i].polygonClipOuter |
Array | null |
No | 輸入第i個等值線集合剔除以外之多邊形(polygon)陣列,預設null |
opt.contourSets[i].polygonsClipInner |
Array | null |
No | 輸入第i個等值線集合剔除以內之複數多邊形(multiPolygon)陣列,預設null |
opt.contourSets[i].polygonsContainInner |
Array | null |
No | 輸入第i個等值線集合保留以內之複數多邊形(multiPolygon)陣列,預設null |
opt.contourSetsClick |
function | function(){} |
No | 輸入全域等值線集合的click呼叫函數,引數為{ ev, lat, lng, latLngs, polygonSet, kpolygonSet, contourSet, kcontourSet, contourSets },預設function(){} |
opt.imageSets |
Array | [] |
No | 輸入影像集合陣列,各元素為物件,預設[] |
opt.imageSets[i].title |
String | '' |
No | 輸入第i個影像集合的標題字串,預設'' |
opt.imageSets[i].msg |
String | '' |
No | 輸入第i個影像集合的說明字串,預設'' |
opt.imageSets[i].key |
String | null |
No | 輸入第i個影像集合的穩定識別鍵字串,需於陣列內唯一;提供後陣列插入或重排時該組身分不變(未變更組不重載影像),未給則以陣列索引識別,預設null |
opt.imageSets[i].order |
Number | null |
No | 輸入第i個影像集合的排序用數字,預設null |
opt.imageSets[i].visible |
Boolean | false |
No | 輸入是否顯示第i個影像集合布林值,預設false |
opt.imageSets[i].image |
Object | {} |
No | 輸入第i個影像集合的影像來源物件,含url(影像連結字串)與lngMin/lngMax/latMin/latMax(四至經緯度數字),預設{}。四至以實際數值判定東西南北(較大緯度即為北邊),不依欄位命名方向,故latMin填北緯之像素列慣例亦可正確貼合不致上下顛倒 |
opt.imageSets[i].opacity |
Number | 1 |
No | 輸入第i個影像集合的透明度數字,範圍0~1,超出範圍將夾限,預設1 |
- Description:
WMaplibreglVue2 - 使用 MapLibre GL JS 重構的地圖組件(Vue 2) 所有面板透過四角容器 (corner container) 自動堆疊,不重疊。
核心業務邏輯已提取至 src/js/ 模組,此元件僅保留:
- 響應式狀態(data / computed / watch)
- 薄委派方法(調用模組函式 + 同步 Vue 狀態)
- Vue 特定操作($nextTick / $refs / $forceUpdate)