BIGEMPA Js API示例中心

                3D柱狀圖數據展示源代碼展示

                代碼編輯區(qū) 運行 下載 還原
                                                    <!DOCTYPE html>
                <html lang="en">
                
                <style>
                    body {
                        background-image: url('./xk.jpg');
                        background-repeat: no-repeat;
                    }
                
                    .tip {
                        height: 100px;
                        width: 200px;
                        position: absolute;
                        z-index: 00;
                        top: 10px;
                        left: 20px;
                        color: wheat;
                    }
                </style>
                
                <head>
                    <meta charset="UTF-8">
                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                    <title>Document</title>
                    <!--
                                以下CSS地址請在安裝軟件了替換成本地的地址
                                CSS地址請使用:
                                http://localhost:9000/bigemap.js/v2.1.0/bigemap.css
                                軟件下載地址 http://www.xawiki.com/reader/download/detail201802017.html
                            -->
                    <link href='http://www.xawiki.com:9000/bigemap.js/v2.1.0/bigemap.css' rel='stylesheet' />
                    <!--
                                JS地址請使用:
                                http://localhost:9000/bigemap.js/v2.1.0/bigemap.js
                            -->
                    <script src='http://www.xawiki.com:9000/bigemap.js/v2.1.0/bigemap.js'></script>
                    <script src="http://www.xawiki.com/Public/common/js/jquery.min.js"></script>
                    <script src="http://www.xawiki.com/Public/js/d3.min.js"></script>
                
                </head>
                
                <body>
                    <div class="d3"></div>
                    <div class="tip">成都市XXXXXXX數據展示 如需其他城市 請前往Bigemap下載器下載地圖</div>
                </body>
                <script>
                    //軟件配置信息地址,軟件安裝完成之后使用本地地址,如:http://localhost:9000
                    BM.Config.HTTP_URL = 'http://www.xawiki.com:9000';
                    // 在ID為map的元素中實例化一個地圖,并設置地圖的ID號為 bigemap.zhongkexingtu,ID號程序自動生成,無需手動配置,并設置地圖的投影為百度地圖 ,中心點,默認的級別和顯示級別控件
                    // var map = BM.map('map', 'bigemap.zhongkexingtu', { center: [33, 80], zoom: 4, zoomControl: true, attributionControl: false });
                
                    // 基礎數據初始化
                
                    var width = 800
                    var height = 750
                
                    d3.json('/Public/d3json/sichuanxiaji.geojson').then((data) => {
                        console.log(data);
                        var mapColor = d3.scaleOrdinal(d3.schemeCategory10)
                        var mapLineColor = '#0d67c7';
                        // 繪制
                        var svg = d3.select('.d3').append('svg')
                            .attr('width', width).attr('height', height);
                        // 定義地圖的投影
                        var projection = d3.geoMercator()
                            .center([103.991184, 31])
                            .scale(20000);
                        // 定義地理路徑生成器
                        var path = d3.geoPath()
                            .projection(projection);
                
                        var darkmap = svg.append('g').attr('class', 'darkmap');
                
                        var mapGroups = svg.append('g')
                            .attr('class', 'mapGroups');
                
                
                        //制作數據
                        var mapdata = []
                        BM.geoJson(data, {
                            onEachFeature: function (feature, layer) {
                
                                var latlngs = layer.getBounds().getCenter()
                                mapdata.push([
                                    {
                                        'name': feature.properties.name,
                                        'log': latlngs.lng,
                                        'lat': latlngs.lat,
                                        'num': Math.random() * 10,
                                        'unit': '%'
                                    },
                                ])
                            }
                        })
                        console.log(mapdata);
                        //繪制陰影
                        darkmap.selectAll('path')
                            .data(data.features)
                            .enter()
                            .append('path')
                            .attr('class', 'map-path')
                            .style('fill', '#2f2727')
                            .attr('stroke', 'white')
                            .attr('d', path)
                            .attr('transform', 'translate(20,10)');
                        // 地圖路徑繪制
                        console.log(data.features);
                        mapGroups.selectAll('path')
                            .data(data.features)
                            .enter()
                            .append('path')
                            .attr('class', 'map-path')
                            .style('fill', (d, i) => {
                                return mapColor(i)
                            })
                            .attr('stroke', 'white')
                            .attr('d', path);
                
                        // // text地理名稱
                        mapGroups.selectAll('text')
                            .data(mapdata)
                            .enter()
                            .append('text')
                            .text((d) => d[0].name)
                            .attr('font-size', '10')
                            .attr('transform', (d) => {
                                var coor = projection([d[0].log, d[0].lat]);
                                return 'translate(' + coor[0] + ',' + coor[1] + ')';
                            });;
                
                        //繪制矩形
                        var rectWidth = 13;
                        var rectHeight = 60;   // 應根據計算得出,先默認柱體高度為60
                        var rectColor = '#14a8f394';
                        var rectLineColor = '#12ddda';
                
                        var rect3dGroups = svg.append('g')
                            .attr('class', 'rect3dGroups');
                        var rect3d = rect3dGroups.selectAll('rect3d')
                            .data(mapdata)
                            .enter()
                            .append('g')
                            .attr('class', 'rect3d')
                            .style('transform', (d, i) => {
                                if (i === 15) {    // 都江堰市
                                    return `translate(${0}px, ${-4 + 25}px)`;
                                }
                                if (i === 18) {    // 崇州市
                                    return `translate(${0}px, ${-4 + -10}px)`;
                                }
                                if (i === 8) {    // 溫江市
                                    return `translate(${0}px, ${-4 + 30}px)`;
                                }
                                return 'translate(-20   px, -4px)';
                            });
                        // 定義柱體高度比例尺
                        var maxData = d3.max(mapdata.map((item) => item[0].num));  // 最大增長率對應高度為60
                        var rectHScale = d3.scaleLinear()   // 設置線性比例尺
                            .domain([0, maxData])
                            .range([0, 60]);
                        // 繪制頂面
                        rect3d.append('path')
                            .transition()
                            .duration(2000)
                            .delay((d, i) => {
                                return i * 200
                            })
                            .attr('d', (d) => {
                                let rectHeight = 0;
                                for (let i = 0; i < mapdata.length; i += 1) {
                                    if (d[0].name.indexOf(mapdata[i][0].name.slice(0, -1)) !== -1) {
                                        rectHeight = rectHScale(mapdata[i][0].num);
                                    }
                                }
                                var coor = projection([d[0].log, d[0].lat]);
                                return `M${coor[0]} ${coor[1] - rectHeight}l${rectWidth} ${-rectWidth}l${-rectWidth} ${-rectWidth}l${-rectWidth} ${rectWidth}z`
                            })
                            .attr('fill', rectColor)
                            .attr('stroke', rectLineColor)
                            .attr('stroke-width', 1)
                            .attr('shape-rendering', 'crispedges')
                
                        // 繪制側面
                        rect3d.append('path')
                            .transition()
                            .duration(1000)
                            .delay((d, i) => {
                                return i * 200
                            })
                            .attr('d', (d) => {
                                let rectHeight = 0;
                                for (let i = 0; i < mapdata.length; i += 1) {
                                    if (d[0].name.indexOf(mapdata[i][0].name.slice(0, -1)) !== -1) {
                                        rectHeight = rectHScale(mapdata[i][0].num);
                                    }
                                }
                                var coor = projection([d[0].log, d[0].lat]);
                                return `M${coor[0]} ${coor[1]} l0 ${-rectHeight} l${rectWidth} ${-rectWidth} l0 ${rectHeight} l${-rectWidth} ${rectWidth} l${-rectWidth} ${-rectWidth} l0 ${-rectHeight} l${rectWidth} ${rectWidth} z`
                            })
                            .attr('fill', rectColor)
                            .attr('stroke', rectLineColor)
                            .attr('stroke-width', 1)
                            .attr('shape-rendering', 'crispedges')
                
                        //定義豬蹄數據
                        // // text地理名稱
                        mapGroups.selectAll('.zhutext')
                            .data(mapdata)
                            .enter()
                            .append('text')
                            .attr('class', 'zhutext')
                            .text((d) => {
                                var num = d[0].num
                                return num.toFixed(1) + '%'
                            })
                            .attr('font-size', '15')
                            .attr('transform', (d) => {
                                var coor = projection([d[0].log, d[0].lat]);
                                return 'translate(' + (coor[0] + 20) + ',' + (coor[1] - 20) + ')';
                            })
                            .attr('fill', 'blue');
                    })
                
                </script>
                
                </html>                                                                                                                        
                主站蜘蛛池模板: 污污动漫在线看| 高跟丝袜美女一级毛片| 快点cao我要被cao烂了男女| 亚洲中文字幕久久精品无码a| 看免费的黄色片| 国产区精品视频| 亚洲日本在线电影| 美女扒开尿口让男人桶免费网站 | 影音先锋亚洲资源| 乡村乱妇一级毛片| 波多野结衣伦理电影在线观看| 同性spank男男免费网站| 黄网站色视频免费看无下截| 国产美女口爆吞精普通话| а√最新版在线天堂| 日批视频在线看| 五月婷婷丁香六月| 欧美激情一区二区| 伊人性伊人情综合网| 美女被免费视频网站| 国产在线|日韩| 2020欧美极品hd18| 国产黄大片在线观看视频| 一个人看的视频在线| 无码人妻精品一区二区三18禁 | 亚洲一区二区三区亚瑟| 泰国午夜理伦三级| 北条麻妃一区二区三区av高清 | 亚洲AV激情无码专区在线播放| 污污视频在线观看黄| 免费看欧美一级特黄a大片一| 苍井空亚洲精品AA片在线播放| 夫妇当面交换中文字幕小说| 久久久久777777人人人视频| 欧洲亚洲国产精华液| 亚洲狼人综合网| 男人的j桶女人免费网站| 又黄又爽又色的视频在线看| 躁天天躁中文字幕在线| 国产成人综合在线视频| 夜夜爽免费视频|