国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

echarts-gl的type為map3D修改不同區(qū)域的顏色和點(diǎn)擊事件

這篇具有很好參考價(jià)值的文章主要介紹了echarts-gl的type為map3D修改不同區(qū)域的顏色和點(diǎn)擊事件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

效果圖
echarts3d地圖點(diǎn)擊區(qū)域變色,echarts,vue
regions的數(shù)據(jù)格式
echarts3d地圖點(diǎn)擊區(qū)域變色,echarts,vue
以下是地圖初始化代碼、雙擊地圖和單擊高亮,方法是封裝后的,mapData 的數(shù)據(jù)格式我放在后面,均有注釋

const drawEcharts = mapData => {
	//數(shù)據(jù)過多的時(shí)候,echarts渲染過慢,可以使用此方法
	if (myChart.value) {
		myChart.value.dispose();
	}
	let chartDom = centerMap.value;
	myChart.value = echarts.init(chartDom);
	myChart.value.clear();
	myChart.value.resize();
	let nameMap = "centerMap";
	// 圖標(biāo)數(shù)據(jù)
	// 根據(jù)傳入的type獲取不同的初始數(shù)據(jù)
	mapDataList = mapData;

	// 根據(jù)獲取到的區(qū)劃第一個(gè)查詢區(qū)劃的等級(jí)(地圖下轉(zhuǎn)的時(shí)候用,如果不需要可以用,這個(gè)是為了獲取區(qū)劃等級(jí))
	currentMapLevel.value = mapUtils.getRegionLevel(mapData.features[0].properties.adcode.toString());
	//渲染地圖數(shù)據(jù)
	echarts.registerMap(nameMap, mapData);
	// mapData的數(shù)據(jù)中含有每個(gè)區(qū)對(duì)應(yīng)有多少人(如:成都市1000人)
	//number和resultSac是將每個(gè)區(qū)的人數(shù)做一個(gè)排序,然后規(guī)定一個(gè)范圍,然后某個(gè)范圍只能用一種顏色
	// 比如索引中0-5是顏色#d0f8ff,6-11是顏色#93d5fd以此類推
	// 這兩個(gè)代碼主要是為了讓顏色能更好的劃分區(qū)域,也可以自己手動(dòng)劃分,如果手動(dòng)劃分,number和resultSac是可以不要的

	// 獲取分段后數(shù)據(jù)
	let number: any = mapData.features
		.map(function (feature) {
			return feature.properties.num ? Number(feature.properties.num) : 0;
		})
		.sort(function (a, b) {
			return a - b;
		});
	// mapUtils.sacdata是封裝的方法,可以不需要
	let resultSac = mapUtils.sacdata(number, 5);
	// 地圖模塊顏色劃分(這是主要的顏色劃分)regions 的數(shù)據(jù)格式放在上面的,可以對(duì)照查看,手動(dòng)的我放在下面了
	let regions = mapData.features.map(function (feature) {
		let colorArr = ["#d0f8ff", "#93d5fd", "#5eaedd", "#3787b7", "#0e6598"];
		let colorNum = 0;
		for (let index = 0; index < resultSac.length; index++) {
			if (feature.properties.num <= resultSac[index]) {
				colorNum = index;
				break;
			}
		}
		return {
			name: feature.properties.name,
			value: feature.properties.adcode,
			num: feature.properties.num,
			itemStyle: { color: colorArr[colorNum] }
		};
	});
	// console.log(regions, "regions");
	// 地圖配置
	let optionMap = {
		geo3D: {
			//加載geo3D
			map: nameMap,
			// 設(shè)置3D視角的位置和朝向
			viewControl: {
				distance: 130, // 相機(jī)距離物體的距離
				alpha: 70, // 三維場(chǎng)景水平方向的旋轉(zhuǎn)角度
				beta: 30 // 三維場(chǎng)景垂直方向的旋轉(zhuǎn)角度
			},
			// 文字
			label: {
				show: false,
				fontSize: 13,
				fontWeight: 600,
				opacity: 1,
				textStyle: {
					backgroundColor: "transparent", // 設(shè)置 label 背景透明
					color: "#ffffff", // 設(shè)置 label 文字顏色
					fontFamily: "YSBTH"
				}
			},
			itemStyle: {
				color: "#5ca3f9", //將geo3d數(shù)據(jù)設(shè)置為透明
				opacity: 1, //透明
				borderColor: "#62def5",
				borderWidth: 1,
				areaColor: "rgba(37,157,255,0.2)"
			},
			// 類似于hover
			emphasis: {
				label: {
					show: false
				}
			},
			zlevel: 2
		},
		series: [
			{
				type: "map3D", //加載series數(shù)據(jù)
				map: nameMap,
				// 外邊界顏色
				itemStyle: {
					color: "rgba(1, 16, 31, 0)",
					opacity: 1,
					borderColor: "#75f3f8",
					borderWidth: 1,
					shadowColor: "#3ffeff",
					shadowOffsetY: 15,
					shadowBlur: 8,
					areaColor: "rgba(5,21,35.0.1)"
				},

				label: {
					show: true,
					fontSize: 13,
					fontWeight: 600,
					opacity: 1,
					textStyle: {
						backgroundColor: "transparent", // 設(shè)置 label 背景透明
						color: "#ffffff", // 設(shè)置 label 文字顏色
						fontFamily: "YSBTH"
					}
				},
				// 設(shè)置3D視角的位置和朝向
				viewControl: {
					distance: 130, // 相機(jī)距離物體的距離
					alpha: 70, // 三維場(chǎng)景水平方向的旋轉(zhuǎn)角度
					beta: 30 // 三維場(chǎng)景垂直方向的旋轉(zhuǎn)角度
				},
				// 類似于hover,雙擊地圖的區(qū)塊或者點(diǎn)擊,就是通過這個(gè)傳遞的值
				emphasis: {
					label: {
						formatter: function (params) {
							highlightObj.value = params;
							return params.name;
						},
						show: true,
						fontSize: 13,
						fontWeight: 600,
						opacity: 1,
						textStyle: {
							backgroundColor: "transparent", // 設(shè)置 label 背景透明
							color: "#fff", // 設(shè)置 label 文字顏色
							fontFamily: "YSBTH"
						}
					},
					itemStyle: {
						color: "#15ffff",
						opacity: 1,
						borderColor: "#62def5",
						borderWidth: 5
					}
				},
				// shading: 'color',
				zlevel: 3,
				// 數(shù)據(jù)
				data: regions,
				large: true
			}
		]
	};

	myChart.value.clear();
	// myChart.value.resize();
	myChart.value.setOption(optionMap);
	
	// 雙擊下鉆
	myChart.value.getZr().on("dblclick", async res => {
		res.event.stopPropagation();
		// 因?yàn)槲沂歉競(jìng)髯臃庋b的組件,會(huì)涉及到有些地方是不允許下轉(zhuǎn)的,這個(gè)值就是父?jìng)鬟f過來(lái)是否允許下轉(zhuǎn)的
		if (!propsList.allow) return;
		// 這兒是接收emphasis.label的信息,在這兒我就不貼出數(shù)據(jù)格式了,可以自己打印看看
		let params = highlightObj.value;
		// 這兒是獲取你點(diǎn)擊的那個(gè)區(qū)的信息
		let curData = mapData.features[params.dataIndex];
		// 如果是村一級(jí)不下鉆(這是項(xiàng)目要求,如果沒有這個(gè)要求,可以刪除)
		if (currentMapLevel.value == 6) {
			return;
		}
		// 獲取這個(gè)點(diǎn)擊地方的區(qū)劃號(hào),因?yàn)槲覀兒蠖艘蟮氖亲址?,所以我轉(zhuǎn)了一下格式
		let code = curData.properties.adcode.toString();
		// 這兒是我根據(jù)后端需求,返回上一級(jí)需要區(qū)劃號(hào),所以我把我下轉(zhuǎn)的區(qū)劃號(hào)存在一個(gè)數(shù)組里
		runInHole.value.push(code);
		//  層級(jí)(省的層級(jí)對(duì)應(yīng)2;市=>3;區(qū)=>4以此類推)
		let level = currentMapLevel.value;
		level++;
		// 這是發(fā)送請(qǐng)求,請(qǐng)求獲取地圖信息,可以在這里獲取到了新的地圖信息后重新渲染地圖,調(diào)用封裝的方法drawEcharts
		// 因?yàn)橄到y(tǒng)響應(yīng)時(shí)長(zhǎng)的問題,我是通過其他地方調(diào)用的,就不在這兒展示了
		await getMapData(1, 99, [code], level);
		// 這個(gè)是子傳父,可以不要
		emit("getRegionList", {
			level: level,
			regions: mapList,
			curData
		});


	// 定義單擊高亮的地圖
	let colorActive = ref({
		num: -1,
		color: null
	});
	// 單擊高亮
	myChart.value.getZr().on("click", () => {
		click_type = false;
		let params = highlightObj.value;
		// 層級(jí)
		let level = currentMapLevel.value;
		level++;

		setTimeout(() => {
			if (click_type != false) return;
			highlightName.value = params.name;
			let option = myChart.value.getOption();
			let list = option.geo3D[0].regions;

			if (list.length == 1) return;
			//找到選中的地圖,并設(shè)置高亮
			let result = list.find(el => el.name === params.name);
			// 所在位置索引
			let resultIndex = list.findIndex(el => el.name === highlightName.value);
			// 將之前的高亮過區(qū)域換成原本的顏色
			if (colorActive.value.num >= 0) {
				option.series[0].data[colorActive.value.num].itemStyle = {
					color: colorActive.value.color
				};
			}
			// 存儲(chǔ)點(diǎn)擊區(qū)域的索引和原本的顏色
			colorActive.value.num = resultIndex;
			colorActive.value.color = option.series[0].data[resultIndex].itemStyle.color;

			if (resultIndex != -1) {
				highlightIndex.value = resultIndex;
			}
			// 設(shè)置高亮-以及高亮字體大小
			if (result) {
				option.series[0].data[resultIndex].itemStyle = {
					color: "#15eaff"
				};
				option.series[0].label.textStyle.fontSize = 13;

				if (myChart.value) {
					myChart.value.clear();
				}
				myChart.value.setOption(option);
			}
		}, 500);
	});
};

這個(gè)是手動(dòng)區(qū)分,就看綠色框框的,feature.properties.num就是各個(gè)區(qū)人數(shù)
echarts3d地圖點(diǎn)擊區(qū)域變色,echarts,vue

mapData 的數(shù)據(jù)格式
echarts3d地圖點(diǎn)擊區(qū)域變色,echarts,vue文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-827280.html

到了這里,關(guān)于echarts-gl的type為map3D修改不同區(qū)域的顏色和點(diǎn)擊事件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Echarts map3D 禁止鼠標(biāo)滾輪縮放

    Echarts type為map3D 在使用時(shí)發(fā)現(xiàn)會(huì)存在鼠標(biāo)滾輪縮放的情況 zoomSensitivity屬性本質(zhì)上是是否開啟map3D的縮放和平移 所以也可以禁止鼠標(biāo)滾輪縮放的情況 禁用這個(gè)屬性就可以實(shí)現(xiàn)map3D 禁止鼠標(biāo)滾輪縮放的需求了

    2024年02月15日
    瀏覽(90)
  • Echarts使用map3D+visualMap 實(shí)現(xiàn)地圖下鉆,區(qū)域高亮狀態(tài)下變高

    Echarts使用map3D+visualMap 實(shí)現(xiàn)地圖下鉆,區(qū)域高亮狀態(tài)下變高

    想要實(shí)現(xiàn)3D地圖省市區(qū)下鉆,地圖區(qū)域用不同顏色區(qū)分?jǐn)?shù)值大小,當(dāng)hover區(qū)域時(shí),當(dāng)前區(qū)域變高,點(diǎn)擊下鉆 ?js核心代碼 ?mapData和cityData是另外引入const.js文件 html 我的地圖是浙江省數(shù)據(jù),省市json文件可以在下面鏈接自行下載 DataV.GeoAtlas地理小工具系列 由阿里云DataV數(shù)據(jù)可視化

    2024年02月11日
    瀏覽(36)
  • echarts geo3D結(jié)合map3D 生成可以點(diǎn)擊獲取省份信息跳轉(zhuǎn)到相應(yīng)省份 且地圖顯示省份名稱

    echarts geo3D結(jié)合map3D 生成可以點(diǎn)擊獲取省份信息跳轉(zhuǎn)到相應(yīng)省份 且地圖顯示省份名稱

    先講下需求: 1.地圖上顯示各個(gè)省份的名稱 2.對(duì)不同省份進(jìn)行區(qū)分(項(xiàng)目涉及到省份排名之類的); 3. 點(diǎn)擊進(jìn)入不同省份 展示各個(gè)省份的市區(qū)信息; 4. 在省份地圖上添加marker ; 1.中國(guó)地圖使用geo3d 和scatter3D做文字圖層,用map3d實(shí)現(xiàn)點(diǎn)擊可以獲取省份信息,如果單獨(dú)使用geo

    2024年02月16日
    瀏覽(43)
  • ChatGPT工作提效之?dāng)?shù)據(jù)可視化大屏組件Echarts的實(shí)戰(zhàn)方案(大數(shù)據(jù)量加載、偽3D餅圖、地圖各省cp中心坐標(biāo)屬性、map3D材質(zhì))

    ChatGPT工作提效之?dāng)?shù)據(jù)可視化大屏組件Echarts的實(shí)戰(zhàn)方案(大數(shù)據(jù)量加載、偽3D餅圖、地圖各省cp中心坐標(biāo)屬性、map3D材質(zhì))

    ChatGPT工作提效之初探路徑獨(dú)孤九劍遇強(qiáng)則強(qiáng) ChatGPT工作提效之在程序開發(fā)中的巧勁和指令(創(chuàng)建MySQL語(yǔ)句、PHP語(yǔ)句、Javascript用法、python的交互) ChatGPT工作提效之生成開發(fā)需求和報(bào)價(jià)單并轉(zhuǎn)為Excel格式 ChatGPT工作提效之小鵝通二次開發(fā)批量API對(duì)接解決方案(學(xué)習(xí)記錄同步、用戶注

    2024年02月13日
    瀏覽(22)
  • 使用echarts-gl 繪制3D地球配置詳解

    大屏可視化繪制關(guān)聯(lián)配置繪制3D地球 為 ECharts 準(zhǔn)備一個(gè)定義了寬高的 DOM 實(shí)例化 指定圖表的配置項(xiàng)和數(shù)據(jù)

    2024年02月11日
    瀏覽(28)
  • vue使用echarts與echarts-gl實(shí)現(xiàn)3d地圖與 3d柱狀圖

    vue使用echarts與echarts-gl實(shí)現(xiàn)3d地圖與 3d柱狀圖

    目錄 前言 一、下載echarts與echarts gl 二、vue引入與頁(yè)面使用 1.引入 2.頁(yè)面引入echarts-gl 三、下載地圖數(shù)據(jù) 四、使用地圖 1、html初始化地圖放入位置: 2、data創(chuàng)建變量 3、創(chuàng)建地圖 4、鉤子函數(shù)渲染地圖 5、渲染完成效果 總結(jié) 提示:本項(xiàng)目使用vue,請(qǐng)?zhí)崆按罱ê胿ue項(xiàng)目 本次需求

    2024年02月12日
    瀏覽(27)
  • vue-使用echarts+echarts-gl實(shí)現(xiàn)某個(gè)省份地區(qū)地圖3d可視化

    前言 最近在開發(fā)中遇到一個(gè)需求,需要把一個(gè)地區(qū)地圖變成3d感覺懸浮在大屏中間配合業(yè)務(wù)需求 其實(shí)echarts配合三方庫(kù)就可以實(shí)現(xiàn)這個(gè)效果,具體細(xì)節(jié)需要自己調(diào)整 代碼實(shí)現(xiàn) 1.下載各省份各地區(qū)地圖數(shù)據(jù)-json文件-根據(jù)需求下載對(duì)應(yīng)地圖json數(shù)據(jù)引入即可 最新全國(guó)地圖JSON數(shù)據(jù)

    2024年01月20日
    瀏覽(28)
  • vue中使用echarts與echarts-gl 實(shí)現(xiàn)3D餅圖環(huán)形餅圖

    vue中使用echarts與echarts-gl 實(shí)現(xiàn)3D餅圖環(huán)形餅圖

    注意:我不知道版本差異會(huì)不會(huì)有影響(可以指定版本 也可以借鑒我的) 指定版本命令 加個(gè)@后面跟版本號(hào)即可 成功之后可以在package.json中檢查是否安裝成功(如上圖) 引入位置:我沒有在main.js中全局引用,而是哪個(gè)頁(yè)面用到就引入哪里 代碼: 注意:我沒有封裝起來(lái)(你

    2024年02月03日
    瀏覽(56)
  • vue3.0 使用echarts與echarts-gl 實(shí)現(xiàn)可旋轉(zhuǎn),可放大3D餅圖

    vue3.0 使用echarts與echarts-gl 實(shí)現(xiàn)可旋轉(zhuǎn),可放大3D餅圖

    echarts與echarts-gl 實(shí)現(xiàn)3D餅圖 實(shí)現(xiàn)效果: 旋轉(zhuǎn)效果 縮放效果 實(shí)現(xiàn)步驟 1、安裝echarts npm install echarts npm install echarts-gl 2、頁(yè)面定義容器 3、js中引入echarts VUE 組件完整源碼:

    2024年04月26日
    瀏覽(27)
  • echarts+echarts-gl vue2制作3D地圖+下鉆功能+標(biāo)記點(diǎn)功能,解決dblclick事件失效問題,解決地圖下鉆后邊框不更新保留問題

    echarts+echarts-gl vue2制作3D地圖+下鉆功能+標(biāo)記點(diǎn)功能,解決dblclick事件失效問題,解決地圖下鉆后邊框不更新保留問題

    目錄 先看實(shí)現(xiàn)效果:?編輯 步驟一 安裝echarts和echarts-gl 步驟二? 設(shè)置地圖容器 在methods中設(shè)置初始化地圖方法并在mounted中調(diào)用 在methods中設(shè)置初始化地圖方法 在mounted中調(diào)用 打開頁(yè)面效果:?編輯 ?步驟三 1、給地圖添加雙擊事件dblclick 但是也出現(xiàn)了一個(gè)問題,和我們預(yù)想的

    2023年04月09日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包