最近,我在網上查到一種設置內外邊界的方案,首先來說,確實有效,代碼如下:
option = {
backgroundColor: '#000',//畫布背景顏色
geo: {
show: true,
map: 'china',
label: {
show: false
},
roam: false,
itemStyle: {
normal: {
areaColor: '#000',
borderWidth: 4, //設置外層邊框
borderColor:'#f8911b',
},
emphasis: {
show: false,
// areaColor: '#01215c'
}
}
},
series: [
{
type: 'map',
map: 'china',
label: {
show: false
},
roam: false,
itemStyle: {
normal: {
areaColor: '#000',
borderColor: '#a18a3a',
borderWidth: 1
},
emphasis: {
show: false,
areaColor: null
}
},
}
]
}
實現原理:
兩個地圖的疊加,
其一,底層地圖設置邊框,即geo中itemStyle.normal屬性(這裏顯示的是中國邊界線的邊框,較寬)
其二,上層地圖再設置邊框,即series中itemStyle.normal屬性(這裏顯示是的各省邊界的邊框,較窄)
首先,上層地圖覆蓋了下層地圖,故各省邊界邊框顯示的是series中設置的邊界樣式,
但又由於下層地圖邊框較寬,上層地圖無法全部覆蓋,所以只剩下中國邊界顯示出來,這樣就實現了中國邊界和各省邊界不同樣式的效果
實現的注意事項:
1,geo中設置map:"china"顯示底圖,series中也設置map:"china"顯示上層地圖。
series中的map:“china” 必不可少,否則無法實現
2,由於放大或移動時,只能操作一個地圖,所以統一禁止地圖縮放,移動。
在geo和series中都設置roam: false即可
參考鏈接 https://blog.csdn.net/qq_36437172/article/details/106099547