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

簡(jiǎn)單聊聊Echarts偽3D地圖實(shí)現(xiàn)的相關(guān)配置

這篇具有很好參考價(jià)值的文章主要介紹了簡(jiǎn)單聊聊Echarts偽3D地圖實(shí)現(xiàn)的相關(guān)配置。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

知識(shí)和技能真的是用進(jìn)廢退,還是得多實(shí)踐,才不至于遺忘。

目錄

前言

二、實(shí)現(xiàn)原理

三、從0開(kāi)始實(shí)現(xiàn)

1.目錄結(jié)構(gòu)

2.地圖JSON數(shù)據(jù)獲取

3.具體實(shí)現(xiàn),重頭戲

3.一些常見(jiàn)問(wèn)題的解決方法

總結(jié)


前言

本文簡(jiǎn)單來(lái)聊一聊Echarts偽3D地圖的實(shí)現(xiàn),只分離出最底層的偽3D效果,刪除了其余的上層展示效果。Echarts這塊還有一些重要且常用的功能,比如,地圖鉆取、結(jié)合散點(diǎn)圖實(shí)現(xiàn)各種效果等,總之,可玩性很高。本文還是抽絲剝繭,只專(zhuān)注3D效果這一點(diǎn),貪多嚼不爛,后續(xù)有機(jī)會(huì)可以進(jìn)行擴(kuò)展,或者網(wǎng)上能夠找到不少的Echarts社區(qū)的鏡像站。里面的示例良莠不齊,但仔細(xì)甄別后,有很多可取之處。


一、實(shí)現(xiàn)效果圖

先來(lái)看效果圖,如果不符合你的業(yè)務(wù)需求,也就不用再繼續(xù)浪費(fèi)你的時(shí)間了,再去找找其他效果實(shí)現(xiàn)。所有的天馬行空,一定可以用技術(shù)來(lái)實(shí)現(xiàn),如果不能,那就是技術(shù)還有待發(fā)展。加油,期待在別的博文中有幸再見(jiàn)。

?如果需要在線運(yùn)行預(yù)覽,可以直接點(diǎn)擊:

簡(jiǎn)單聊聊Echarts偽3D地圖實(shí)現(xiàn)的相關(guān)配置簡(jiǎn)單聊聊Echarts偽3D地圖實(shí)現(xiàn)的相關(guān)配置?

二、實(shí)現(xiàn)原理

實(shí)現(xiàn)的原理:說(shuō)白了就是多圖層錯(cuò)位,輔以相應(yīng)的顏色搭配營(yíng)造出一種凸起的效果。具體的配置包括:zlevel(用于分層,數(shù)值大的在數(shù)值小的上面)、aspectScale(地圖的長(zhǎng)寬比,默認(rèn)0.75)、layoutCenter(定義地圖中心在屏幕中的位置)、layoutSize(定義地圖的大?。┑?/span>

三、從0開(kāi)始實(shí)現(xiàn)

1.目錄結(jié)構(gòu)

mapdemo目錄下,包含以下四個(gè)文件:

簡(jiǎn)單聊聊Echarts偽3D地圖實(shí)現(xiàn)的相關(guān)配置

2.地圖JSON數(shù)據(jù)獲取

DataV.GeoAtlas地理小工具系列

我為了演示方便,直接放到了js文件里了,采用變量存儲(chǔ)。開(kāi)發(fā)中應(yīng)該是放到JSON文件里進(jìn)行讀取。演示使用如下所示:

簡(jiǎn)單聊聊Echarts偽3D地圖實(shí)現(xiàn)的相關(guān)配置

3.具體實(shí)現(xiàn),重頭戲

頁(yè)面布局上使用了Grid布局,有興趣的同學(xué)也可以進(jìn)行了解學(xué)習(xí)一下,萬(wàn)事開(kāi)頭難,還是那句話,用進(jìn)廢退,實(shí)踐是最好的老師。如果不感興趣,也沒(méi)問(wèn)題,畢竟不是本文的主題,只是我希望我用一點(diǎn)能夠達(dá)到一個(gè)拋磚引玉的效果,激發(fā)大家的好奇心。

代碼如下(示例):

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Echarts偽3D地圖</title>
    <script src="./echarts.min.js"></script>
    <script src="./map-shandong.js"></script>
    <script src="./map-shanxi.js"></script>
    <style>
      * {
        margin: 0;
      }
      .map-panel {
        position: relative;
        box-sizing: border-box;
        width: 100vw;
        height: 100vh;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: 55px auto;
        grid-template-areas:
          "header header"
          "left right";
        gap: 10px;
        padding: 10px;
      }
      .title {
        grid-area: header;
        display: grid;
        justify-items: center;
        align-items: center;
        font-size: 28px;
        font-weight: bold;
      }
      .shandong-map {
        grid-area: left;
        border: 1px solid #007acc;
        border-radius: 5px;
      }
      .shanxi-map {
        grid-area: right;
        border: 1px solid #007acc;
        border-radius: 5px;
      }
    </style>
  </head>
  <body>
    <div class="map-panel">
      <div class="title">Echarts偽3D地圖</div>
      <div id="shandong-map" class="shandong-map"></div>
      <div id="shanxi-map" class="shanxi-map"></div>
    </div>
  </body>
  <script>
    window.onload = () => {
      initMap("shandong", mapJsonDataShanDong, "shandong-map");
      initMap("shanxi", mapJsonDataShanXi, "shanxi-map");
    };

    function initMap(mapName, mapJsonData, domId) {
      echarts.registerMap(mapName, mapJsonData);
      let option = {
        tooltip: {
          show: false,
        },
        geo: [
          {
            show: true,
            map: mapName,
            zoom: 1,
            roam: false,
            regions: [],
            zlevel: 5,
            aspectScale: 0.85,
            layoutCenter: ["50%", "50%"],
            layoutSize: "90%",
            itemStyle: {
              areaColor: "transparent",
            },
          },
          {
            show: true,
            map: mapName,
            zoom: 1,
            roam: false,
            zlevel: 4,
            layoutCenter: ["50.5%", "50.5%"],
            layoutSize: "90%",
            aspectScale: 0.85,
            itemStyle: {
              borderWidth: 1,
              borderColor: "rgba(22, 186, 212,0.8)",
              shadowColor: "rgba(80, 183, 140,0.5)",
              shadowOffsetY: 5,
              shadowBlur: 15,
              areaColor: "rgba(5,21,35,0.1)",
            },
            silent: true,
          },
          {
            show: true,
            map: mapName,
            zoom: 1,
            roam: false,
            zlevel: 3,
            layoutCenter: ["51%", "51%"],
            layoutSize: "90%",
            aspectScale: 0.85,
            itemStyle: {
              borderWidth: 1,
              borderColor: "rgba(9, 170, 148,0.6)",
              shadowColor: "rgb(80,183,140)",
              shadowOffsetY: 5,
              shadowBlur: 15,
              areaColor: "transpercent",
            },
            silent: true,
          },
          {
            show: true,
            map: mapName,
            zoom: 1,
            roam: false,
            zlevel: 2,
            layoutCenter: ["51.5%", "51.5%"],
            layoutSize: "90%",
            aspectScale: 0.85,
            itemStyle: {
              borderWidth: 1,
              borderColor: "rgba(105, 174, 253,0.4)",
              shadowColor: "rgba(10, 177, 105,0.4)",
              shadowOffsetY: 15,
              shadowBlur: 10,
              areaColor: "transpercent",
            },
            silent: true,
          },
          {
            show: true,
            map: mapName,
            zoom: 1,
            roam: false,
            zlevel: 1,
            layoutCenter: ["52%", "52%"],
            layoutSize: "90%",
            aspectScale: 0.85,
            itemStyle: {
              borderWidth: 5,
              borderColor: "rgb(6,125,119)",
              shadowColor: "rgba(10,177,105,0.3)",
              shadowOffsetY: 15,
              shadowBlur: 10,
              areaColor: "rgba(5,21,35,0.1)",
            },
            silent: true,
          },
        ],
        series: [
          {
            type: "map",
            map: mapName,
            zoom: 1,
            roam: false,
            aspectScale: 0.85,
            layoutCenter: ["50%", "50%"],
            layoutSize: "90%",
            selectedMode: false,
            itemStyle: {
              normal: {
                label: {
                  show: true,
                  color: "#FF0",
                  fontSize: 14,
                },
                borderColor: "#FFFFFF",
                borderWidth: 1,
                areaColor: {
                  type: "linear",
                  x: 1200,
                  y: 0,
                  x2: 0,
                  y2: 0,
                  colorStops: [
                    {
                      offset: 0,
                      color: "rgb(60,213,147)", // 0% 處的顏色
                    },
                    {
                      offset: 1,
                      color: "rgba(126, 207, 195,0.75)", // 50% 處的顏色
                    },
                  ],
                  global: true, // 缺省為 false
                },
              },
              emphasis: {
                label: {
                  show: true,
                  color: "#FF0",
                  fontSize: 14,
                },
                areaColor: "rgba(18, 190, 115, 0.6)",
                borderColor: "#ffdc00",
              },
            },
            zlevel: 99,
            data: [],
          },
        ],
      };

      let mapChart = echarts.init(document.getElementById(domId));
      mapChart.setOption(option);
      window.onresize = () => {
        mapChart.resize();
      };
    }
  </script>
</html>

3.一些常見(jiàn)問(wèn)題的解決方法

echarts地圖的使用過(guò)程中,可能遇到很多效果顯示的問(wèn)題,但是不知道如何搜索問(wèn)題,總是康菲很多的時(shí)間,下面我簡(jiǎn)單的列舉一些這里面需要注意的點(diǎn),如果恰好有你抓耳撓腮的問(wèn)題,那么我這篇文章的目的也就達(dá)到了。

? ? ? ? 1)我們不需要geo地理坐標(biāo)系圖層進(jìn)行交互,比如鼠標(biāo)滑過(guò)、點(diǎn)擊等事件,這時(shí)候我們可以采用silent:true配置,禁用交互。

? ? ? ? 2)在地圖鉆取時(shí)候,我們基本上不需要地圖點(diǎn)擊后,地圖的高亮顯示,這時(shí)候我們可以通過(guò)selectedMode: false配置,禁用掉選擇,這里面有個(gè)比較坑的地方,就是官網(wǎng)文檔說(shuō)的這個(gè)selectedMode屬性默認(rèn)是關(guān)閉的,這就容易誤導(dǎo)我們以為默認(rèn)是false,其實(shí)不然,它的意思應(yīng)該說(shuō)默認(rèn)是關(guān)閉多選。文檔原文:“選中模式,表示是否支持多個(gè)選中,默認(rèn)關(guān)閉,支持布爾值和字符串,字符串取值可選'single'表示單選,或者'multiple'表示多選?!?mark hidden color="red">文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-460559.html


總結(jié)

希望你工作是為了更好的生活,而不是為了活著。在這個(gè)過(guò)程中,如果能夠給世界留下點(diǎn)什么,那就更好了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-460559.html

到了這里,關(guān)于簡(jiǎn)單聊聊Echarts偽3D地圖實(shí)現(xiàn)的相關(guā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使用二維地圖實(shí)現(xiàn)好看的3D效果

    echarts使用二維地圖實(shí)現(xiàn)好看的3D效果

    內(nèi)容概要: 使用echarts的二維地圖模擬三維立體動(dòng)態(tài)風(fēng)格的地圖效果,地圖邊界還帶有動(dòng)態(tài)流動(dòng)線條效果,既有三維的立體效果,又避免了三維地圖占用內(nèi)存資源高的問(wèn)題。 目標(biāo)人群: 前端開(kāi)發(fā)工程師,大屏可視化開(kāi)發(fā)人員。 使用場(chǎng)景: 使用echarts二維地圖模擬三維地圖效果

    2024年02月11日
    瀏覽(26)
  • 使用echarts實(shí)現(xiàn)3D地圖和需要注意的點(diǎn)

    一種是map3D 一種是geo3D?+?series中的內(nèi)容(比如bar3D、scatter3D) 具體配置 Documentation - Apache ECharts https://echarts.apache.org/zh/option-gl.html#series-bar3D.coordinateSystem 中的 GL配置 中 需要強(qiáng)調(diào)的是: map3D可以使用?this.chart.on(\\\'click\\\',?回調(diào)函數(shù));方法獲取點(diǎn)擊內(nèi)容,而geo3D是不可以的。 所以我

    2024年02月01日
    瀏覽(21)
  • vue+echarts——實(shí)現(xiàn)3D地圖+3D柱狀圖 效果——粗糙代碼記錄——技能提升

    vue+echarts——實(shí)現(xiàn)3D地圖+3D柱狀圖 效果——粗糙代碼記錄——技能提升

    最近看到同事在弄下面的這個(gè)圖,這個(gè)圖是從網(wǎng)上看到的,是某個(gè)網(wǎng)站的收費(fèi)項(xiàng)目: 所以,最后的決定是通過(guò) echarts 中的 3D地圖 來(lái)寫(xiě)。但是寫(xiě)出來(lái)的效果不慎好看。功能是可以實(shí)現(xiàn)的。 初版效果圖如下: 直接上代碼: 我這邊是存儲(chǔ)到當(dāng)前文件夾中了。。。 背景顏色是 ec

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

    前言 最近在開(kāi)發(fā)中遇到一個(gè)需求,需要把一個(gè)地區(qū)地圖變成3d感覺(jué)懸浮在大屏中間配合業(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 3D地球和世界地圖的實(shí)現(xiàn),并且顯示不同國(guó)家的數(shù)據(jù)

    vue echarts 3D地球和世界地圖的實(shí)現(xiàn),并且顯示不同國(guó)家的數(shù)據(jù)

    別忘記給#earth元素設(shè)置寬高 效果如下圖 別忘記給#world元素設(shè)置寬高 其中注意點(diǎn)是world.js 下載地址 下載完成以后需要對(duì)其進(jìn)行改變一下,原本是他是放在一個(gè)匿名自執(zhí)行函數(shù)里面,直接在vue里面引用會(huì)報(bào)錯(cuò),要把他變成 export 對(duì)象,代碼片段實(shí)例 效果如下圖 關(guān)鍵點(diǎn)在globe里面

    2024年02月04日
    瀏覽(27)
  • 小程序中使用echarts的相關(guān)配置以及折線圖案例(簡(jiǎn)單易懂)

    小程序中使用echarts的相關(guān)配置以及折線圖案例(簡(jiǎn)單易懂)

    第一步:引入echarts文件--此文件需要下載: ?下載地址:點(diǎn)擊此處進(jìn)行下載echarts文件 點(diǎn)擊 Download ZIP 下載壓縮包, 注意:e-canvas是我從完整的文件中剝離出來(lái)的有用的,不會(huì)影響項(xiàng)目。 第二步:把整個(gè)文件放入到小程序文件里。 第三步:在需要的組件中進(jìn)行正確引入 ? ?

    2024年02月07日
    瀏覽(23)
  • 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 使用地圖,設(shè)置背景圖片和高亮圖片,點(diǎn)擊實(shí)現(xiàn)高亮顯示,更換散點(diǎn)圖圖片,高亮散點(diǎn)圖形,3D懸浮效果展示地圖,集成Vue組件

    echarts 使用地圖,設(shè)置背景圖片和高亮圖片,點(diǎn)擊實(shí)現(xiàn)高亮顯示,更換散點(diǎn)圖圖片,高亮散點(diǎn)圖形,3D懸浮效果展示地圖,集成Vue組件

    先看下? ?需要實(shí)現(xiàn)的效果: 第一步 需準(zhǔn)備需要的插件 ?1? 注意新版?echarts 的引入方式為: ?import * as echarts from \\\'echarts\\\',這里我把 echarts 直接掛載到了Vue上,本項(xiàng)目使用echarts比較多,這樣的話很方便,也可以在需要echarts的模塊按需引入 ? ? ? ?在main.js中添加以下代碼:

    2024年02月10日
    瀏覽(30)
  • Echarts 3d地圖

    Echarts 3d地圖

    Echarts官方網(wǎng)址:https://echarts.apache.org/zh/index.html 使用echarts繪制3d地圖以及在3d地圖上繪制江蘇省區(qū)域邊界飛線圖以及3d柱狀圖和3d散點(diǎn). 江蘇省.JEOJSON https://download.csdn.net/download/qq_43557302/86399879

    2024年02月11日
    瀏覽(21)
  • echarts地圖3D效果

    echarts地圖3D效果

    ?

    2024年02月11日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包