echarts 3D地圖為區(qū)域自定義顏色的解決方法
問題
根據(jù)項目需求,我們要將下面省級地圖中的個別市進行高亮(不同顏色)展示

延伸
首先跟大家介紹這個地圖的展示方式:
- 采用的是Vue框架中運用echarts
- 地圖采用的是geo3D和scatter3D
當然他的實現(xiàn)很簡單
首先我們要初始化echarts
let echartsMap = this.$echarts.init(this.$refs.echartsMap);
注冊地圖
this.$echarts.registerMap('河南', dataGeoLocation);
//后面的dataGeoLocation是我們下載下載的地圖json文件然后引入到當前
//組件中進行使用的,前面的河南則是我們要注冊的地圖
設置option對象
這里面的配置是根據(jù)自己的項目需求而來的 自己可以看文檔都有詳細的介紹
this.echartsDataMap = {
visualMap: {
min: 0,
max: 500,
show: false,
inRange: {
color: ['#eac736', '#6EAFE3'].reverse()
},
},
globeRadius: 100,
globeOuterRadius: 100,
geo3D: {
map: mapName,
viewControl: {
center: [0, 0, 0],
alpha: 100,//上下旋轉(zhuǎn)角度
beta: 10,//左右旋轉(zhuǎn)角度
animation: true,//是否動畫顯示
animationDurationUpdate: 1000,//動畫時間
distance: 130,//視角到主題距離
minBeta: -9999,//最?。ㄗ螅┬D(zhuǎn)度數(shù)
maxBeta: 9999,//最多(右)旋轉(zhuǎn)角度
autoRotate: false,
autoRotateDirection: 'cw',
autoRotateSpeed: 10,
},
splitArea:{
areaStyle:{
color:'red',
}
},
light: {
main: {
intensity: 1.2,
// color: 'transparent',
color: '#0D3867',
shadowQuality: 'ultra',
shadow: true,
alpha: 150,
beta: 200
},
ambient: {
intensity: 1,//環(huán)境光強度
},
ambientCubemap: {
diffuseIntensity: 1,
texture: ''
}
},
groundPlane: {
show: false
},
postEffect: {
enable: false
},
itemStyle: {
color: '#175096',
borderColor: 'rgb(62,215,213)',
opacity: 0.8,//透明度
borderWidth: 1
},
label: {
show: false
},
emphasis: {
label: {
show: false
},
itemStyle: {
}
},
silent: false, // 不響應和觸發(fā)鼠標事件
},
series: [
{
type: 'scatter3D',
coordinateSystem: 'geo3D',
data: this.areaName
symbol: 'circle',
symbolSize: 0,
silent: false, // 不響應和觸發(fā)鼠標事件
itemStyle: {
borderColor: '#fff',
borderWidth: 1
},
label: {
distance: 30,
show: true,
formatter: '',
position: 'bottom',
bottom: '100',
textStyle: {
color: '#fff',
marginTop: 40,
fontSize: 16,
// fontWeight:'bold',
backgroundColor: 'transparent',
}
}
},
{
type: 'scatter3D',
coordinateSystem: 'geo3D',
data: pinArr,
color: '#6EAFE3',
symbol: 'pin',
symbolSize: 56,
symbolOffset: ['100%','50%','0'],
silent: false, // 不響應和觸發(fā)鼠標事件
itemStyle: {
textAlign: 'center',
borderColor: '#6EAFE3',
backgroundColor: '#6EAFE3',
borderWidth: 0
},
zlevel: -10,
label: {
show: true,
distance: -45,
// left:-10,
position: 'bottom',
formatter: (data) => {
return data.value[3] + ' ';
},
textStyle: {
color: '#333',
backgroundColor: 'transparent'
}
}
},
]
};
將option實例到我們的echarts上
echartsMap.setOption(this.echartsDataMap);
解決問題
回頭我們來看文章開頭的問題,在百度上找到了很多方式,經(jīng)過嘗試好像沒有什么效果,其實能夠解決我也是根據(jù)網(wǎng)上提供的辦法進行改進后就實現(xiàn)了


這是我在眾多方式中找到的比較靠譜的一種方式,這里他說的是再geo中去添加regions即可,其實是這樣的 但是我添加后沒有效果,原因就是我的是geo3D而他的是geo,但是問題不大,經(jīng)過我在三的嘗試最終發(fā)現(xiàn)原來他們兩個中僅僅是寫法不一樣
regions: [
{
name: '鄭州市', /
itemStyle: {
color: 'green'
}
},{
name: '南陽市',
itemStyle: {
color: 'green'
}
},{
name: '商丘市',
itemStyle: {
color: 'green'
}
}]
我們只需要更正一下color的設置形式然后添加到我們的geo3D中就可以了

總結(jié)
到此這篇關(guān)于echarts 3D地圖為區(qū)域自定義顏色的文章就介紹到這了,更多相關(guān)echarts 3D地圖自定義顏色內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS+CSS實現(xiàn)彈出全屏灰黑色透明遮罩效果的方法
這篇文章主要介紹了JS+CSS實現(xiàn)彈出全屏灰黑色透明遮罩效果的方法,詳細分析了彈出遮罩層效果的實現(xiàn)方法以及完整的實例代碼,需要的朋友可以參考下2014-12-12
原生JavaScript實現(xiàn)合并多個數(shù)組示例
這篇文章主要介紹了原生的JavaScript及jquery實現(xiàn)合并多個數(shù)組,很簡單,很實用,大家可以看看2014-09-09
php實例分享之實現(xiàn)顯示網(wǎng)站運行時間
這篇文章主要介紹了php實現(xiàn)顯示網(wǎng)站運行時間,需要的朋友可以參考下2014-05-05

