Echarts基于maptalks3D地圖實現(xiàn)3D柱狀圖

例子來源: Make A Pie - 上海居民活動點分布可視化

效果圖:

md_abb102af.png

npm安裝:

npm install echarts
npm install echarts-gl

引入方式:

import echart from "echarts";

或者index.html里面:

<!-- maptalks 的 CSS 文件 -->
    <link type="text/css" rel="stylesheet" >
    <!-- maptalks 的 js 文件 -->
    <script type="text/javascript" src="https://unpkg.com/maptalks/dist/maptalks.min.js"></script>
    <!--echarts js文件 -->
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
    <!--echarts-gl js文件 -->
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script>
    <!-- ecStat 的 js 文件 -->
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat/dist/ecStat.min.js"></script>
    <!-- dataTool 的 js 文件 -->
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/dataTool.min.js"></script>

1.數(shù)據(jù)結(jié)構(gòu)

var data1=[
      {
       name:"wnm",//柱狀圖名字
       value:[
                121.25354625637668, //經(jīng)度
                31.12640542845193, //緯度
                30000 //數(shù)值
             ]
       }]

2.option配置

var option = {
                visualMap: {
                    show:false,
                    max:30000,
                    inRange: {
                        color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
                    },
                },
                tooltip:{
                },
                //創(chuàng)建maptalks3D地圖
                maptalks3D: {
                    center: [121.4693, 31.213070],
                    zoom: 10,
                    pitch: 40,
                    urlTemplate: 'http://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png',
                    // altitudeScale: 1,
                    postEffect: {
                        enable: true,
                        FXAA: {
                            enable: true
                        }
                    },
                    light: {
                        main: {
                            intensity: 1,
                            shadow: true,
                            shadowQuality: 'high'
                        },
                        ambient: {
                            intensity: 0.
                        },
                        ambientCubemap: {
                            // texture: 'data-1491838644249-ry33I7YTe.hdr',
                            exposure: 1,
                            diffuseIntensity: 0.5,
                            specularIntensity: 2
                        }
                    }
                },
                series: [
                   {
                    type: 'bar3D',
                    shading: 'realistic',
                    coordinateSystem: 'maptalks3D',
                    barSize: 0.4,
                    silent: true,
                    data:data1
                }]
            }

3.源碼

<!DOCTYPE html>
<html style="height: 100%">
   <head>
       <meta charset="utf-8">
   </head>
   <body style="height: 100%; margin: 0">
       <div id="container" style="height: 100%"></div>
       <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
       <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script>
       <--!引入maptalks地圖-->
       <link type="text/css" rel="stylesheet" >
       <script type="text/javascript" src="https://unpkg.com/maptalks/dist/maptalks.min.js"></script>
       <script type="text/javascript">
            var dom = document.getElementById("container");
            var myChart = echarts.init(dom);
            var data1=[{name:"wnm",value:[121.25354625637668, 31.12640542845193, 30000]}];
            // https://gallerybox.echartsjs.com
            //讀取MapboxStyle數(shù)據(jù)
            var option = {
                visualMap: {
                    show:false,
                    max:30000,
                    inRange: {
                        color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
                    },
                },
                tooltip:{
                },
                maptalks3D: {
                    center: [121.4693, 31.213070],
                    zoom: 10,
                    pitch: 40,
                    urlTemplate: 'http://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png',
                    // altitudeScale: 1,
                    postEffect: {
                        enable: true,
                        FXAA: {
                            enable: true
                        }
                    },
                    light: {
                        main: {
                            intensity: 1,
                            shadow: true,
                            shadowQuality: 'high'
                        },
                        ambient: {
                            intensity: 0.
                        },
                        ambientCubemap: {
                            // texture: 'data-1491838644249-ry33I7YTe.hdr',
                            exposure: 1,
                            diffuseIntensity: 0.5,
                            specularIntensity: 2
                        }
                    }
                },
                series: [{
                    type: 'bar3D',
                    shading: 'realistic',
                    coordinateSystem: 'maptalks3D',
                    barSize: 0.4,
                    silent: true,
                    data:data1
                }]
            }

            if (option && typeof option === "object") {
                myChart.setOption(option, true);
            }
       </script>
   </body>
</html>

遇到什么問題,可留言,看到會盡快回復。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容