成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

iChart--地圖顯示人口統(tǒng)計(jì)

mtunique / 2033人閱讀

摘要:導(dǎo)語(yǔ)大數(shù)據(jù)呈現(xiàn)應(yīng)用越來(lái)越廣泛支持大數(shù)據(jù)呈現(xiàn)的,水平較高的有然而在地圖呈現(xiàn)的功能上,大都只能繪制矢量地圖,而不能呈現(xiàn)具有真實(shí)效果的地圖鑒于此,本文重點(diǎn)在于如何制作一張,即可以看到真實(shí)效果,又能進(jìn)行交互的矢量地圖先睹為快若有所思技術(shù)選擇想實(shí)現(xiàn)上

導(dǎo)語(yǔ)

大數(shù)據(jù)呈現(xiàn)應(yīng)用越來(lái)越廣泛,支持大數(shù)據(jù)呈現(xiàn)的SDK,水平較高的有echarts、highchart、D3;然而在地圖呈現(xiàn)的功能上,大都只能繪制矢量地圖,而不能呈現(xiàn)具有真實(shí)效果的地圖;鑒于此,本文重點(diǎn)在于如何制作一張,即可以看到真實(shí)效果,又能進(jìn)行交互的矢量地圖;

先睹為快

若有所思 技術(shù)選擇

想實(shí)現(xiàn)上述效果,最先想到的SDK是TWaver,思路也非常的簡(jiǎn)單;

使用Node呈現(xiàn)一張地圖背景圖片,像素越大越好,縮放效果好;

使用ShapeNode加載地圖數(shù)據(jù),并設(shè)置好位置、縮放比例等因素,恰好與地圖重疊;
3.控制地圖的Layer為底層,不可選中;ShapeNode為上層,可交互;

iChart & ZRender

本文使用ichart + zrender技術(shù),繪制上述的效果;

為什么使用zrender呢?實(shí)際上zrender的功能比較簡(jiǎn)單,用于繪制基本的形狀;其實(shí)細(xì)心的你會(huì)發(fā)現(xiàn),echarts的底層就是使用了zrender;

有為什么使用ichart呢?ichart用于繪制常用的圖表,底層基于Canvas繪制,也比較容易改造;而echarts使用的是SVG,修改起來(lái)就沒(méi)那么容易啦!

實(shí)驗(yàn)天地 目標(biāo)一:實(shí)現(xiàn)柱單節(jié)狀圖效果

實(shí)現(xiàn)柱狀圖效果,還真沒(méi)那么容易!ichart不支持怎么辦? 定制!
找到ichart的柱狀圖類(lèi):Cylinder.js,好就從改造他開(kāi)始了!

找到繪制網(wǎng)元的方法buildPath

Cylinder.prototype = {
            type: "cylinder",
            /**
             * 創(chuàng)建圓形路徑
             * @param {CanvasRenderingContext2D} ctx
             * @param {module:zrender/shape/Cylinder~ICircleStyle} style
             */
             buildPath : function (ctx, style) {
                 //拿到你的畫(huà)筆,我就隨便畫(huà)啦
            }
}

如上所言,獲取了Canvas的畫(huà)筆,自由的繪制一個(gè)矩形,上下各一個(gè)橢圓,不就完事了?

this.ellipse(ctx, style.x, style.y, style.a, style.b);
ctx.fillRect(style.x - style.a, style.y - a, style.a * 2 , d);
this.ellipse(ctx, style.x, style.y - a, style.a, style.b);

封裝完畢,打包,混淆,加上測(cè)試代碼,看效果;




    
    Cylinder
    


    

目標(biāo)二:實(shí)現(xiàn)柱多節(jié)柱狀圖效果

問(wèn)題來(lái)了,如果想實(shí)現(xiàn)多段的柱狀圖,如何是好呢?我想您自己都已經(jīng)有思路了;多畫(huà)幾段不就完事了嗎?

buildPath : function (ctx, style) {
                var rect = this.getRect(style);
                // ctx.strokeRect(rect.x,rect.y,rect.width,rect.height);
                // Better stroking in ShapeBundle
                // ctx.moveTo(style.x + style.a, style.y - style.height/2);
                // ctx.arc(style.x, style.y, style.r, 0, Math.PI * 2, true);
                // ctx.arc(style.x, style.y, style.a, 0, Math.PI * 2, true);
                // this.endDraw(style,ctx);
                var data = style.data, color = style.color, isPercent = style.isPercent || false, maxHeight = style.maxHeight || 100;
                if(isPercent) {
                    if(data instanceof Array) {
                        var data2 = [];
                        var all = 0;
                        for(var i = 0;i

目標(biāo)三:繪制地圖

使用zrender的PolygonShape繪制矢量地圖;但是前提是,和底圖圖片完全吻合的數(shù)據(jù)哪里來(lái)呢?

聰明的我想到了使用TWaver自帶編輯器,完美扣除地圖數(shù)據(jù);得到結(jié)果,形如如下數(shù)據(jù)格式:

< px="1209.5549397107488" y="1242.081312831646"/>
< px="1209.5549397107488" y="1233.5993604641965"/>
< px="1179.8681064246748" y="1212.3944795455723"/>
< px="1184.1090826083996" y="1199.6715509943976"/>
< px="1171.3861540572252" y="1161.502765340874"/>
< px="1162.9042016897754" y="1157.2617891571492"/>

稍微加工處理下,得到如下數(shù)據(jù):

{"type": "Feature","properties":{"id":"65","size":"550","name":"新疆","cp":[471.08525328117855,-97.6746544555845],"childNum":18},"geometry":{"type":"Polygon","coordinates":[[[1143.6222085570992,-80.96566177792188],
            [1131.0904640488523,-76.78841360850622],
            [1131.0904640488523,-93.49740628616884],
            [1126.9132158794366,-135.26988798032542],

開(kāi)始加入數(shù)據(jù),創(chuàng)建矢量地圖;

var smoothLine = new PolylineShape({
            style : {
              pointList : points,
              smooth : "spline",
              brushType : "stroke",
              color : "white",
              strokeColor : "white",
              lineWidth : 2,
              lineType : "dotted"
            },
            zlevel:1,
            draggable : true,
          });
          zr.addShape(smoothLine);

最后附上完整代碼:




  
  
  


  

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82076.html

相關(guān)文章

  • 網(wǎng)絡(luò)安全態(tài)勢(shì)可視化

    摘要:安全態(tài)勢(shì)可視化系統(tǒng)的目的是生成網(wǎng)絡(luò)安全綜合態(tài)勢(shì)圖,以多視圖多角度多尺度的方式與用戶(hù)進(jìn)行交互??梢钥吹?,黑客攻擊是無(wú)處不在,無(wú)時(shí)不有的,世界互聯(lián)網(wǎng)的安全態(tài)勢(shì)并不如我們印象中那么隱蔽和少見(jiàn)。 導(dǎo)語(yǔ) 網(wǎng)絡(luò)態(tài)勢(shì)可視化技術(shù)作為一項(xiàng)新技術(shù),是網(wǎng)絡(luò)安全態(tài)勢(shì)感知與可視化技術(shù)的結(jié)合,將網(wǎng)絡(luò)中蘊(yùn)涵的態(tài)勢(shì)狀況通過(guò)可視化圖形方式展示給用戶(hù),并借助于人在圖形圖像方面強(qiáng)大的處理能力,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)異常行為的分析和檢測(cè)...

    testHs 評(píng)論0 收藏0
  • 常用的數(shù)據(jù)可視化工具

    摘要:俗話(huà)說(shuō),不會(huì)使用工具來(lái)完成任務(wù)的都是進(jìn)化不完全的表現(xiàn),大數(shù)據(jù)時(shí)代,可視化已經(jīng)深深鉆進(jìn)我們的生活,使用可視化工具也變的相當(dāng)普遍,今天我們來(lái)總結(jié)下當(dāng)下可視化工具都有哪些。是一個(gè)地圖庫(kù),主要面向數(shù)據(jù)可視化用戶(hù)。 俗話(huà)說(shuō),不會(huì)使用工具來(lái)完成任務(wù)的都是進(jìn)化不完全的表現(xiàn),大數(shù)據(jù)時(shí)代,可視化已經(jīng)深深鉆進(jìn)我們的生活,使用可視化工具也變的相當(dāng)普遍,今天我們來(lái)總結(jié)下當(dāng)下可視化工具都有哪些。 showImg...

    philadelphia 評(píng)論0 收藏0
  • python大數(shù)據(jù)可視化制作全球人口地形圖

      本文主要是給大家介紹了python大數(shù)據(jù)可視化制作全球人口地形圖的實(shí)例詳細(xì)說(shuō)明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家盡可能發(fā)展,盡早漲薪  序言  信息來(lái)源:population_data.json,  先看看數(shù)據(jù)信息長(zhǎng)什么樣  [   {   "CountryName":"ArabWorld",   "Country...

    89542767 評(píng)論0 收藏0
  • iChart--組件定制

    摘要:使用純語(yǔ)言利用的標(biāo)簽繪制各式圖形。致力于為您的應(yīng)用提供簡(jiǎn)單直觀可交互的體驗(yàn)級(jí)圖表組件。目前支持餅圖環(huán)形圖折線(xiàn)圖面積圖柱形圖條形圖。是基于協(xié)議的開(kāi)源項(xiàng)目。陰影圖形效果圖其他形狀的圖標(biāo)類(lèi)似,不再陳述。 導(dǎo)語(yǔ) ichartjs是一款基于HTML5的圖形庫(kù)。使用純javascript語(yǔ)言, 利用HTML5的canvas標(biāo)簽繪制各式圖形。 ichartjs致力于為您的應(yīng)用提供簡(jiǎn)單、直觀、可交互的...

    vvpale 評(píng)論0 收藏0
  • vue地圖可視化 ArcGIS篇(3)

    摘要:不建議底圖選擇中存在兩種不同坐標(biāo)體系,如下圖坐標(biāo)存在明顯的偏差,火星坐標(biāo)在采用坐標(biāo)系的地圖上位置偏上彩色中國(guó)天地圖全球衛(wèi)星地圖例如我們使用的類(lèi)進(jìn)行查找,返回的數(shù)據(jù)都是國(guó)際坐標(biāo),因此必須進(jìn)行偏差糾正。 ArcGIS for javascript開(kāi)發(fā)心得 本次實(shí)例中采用ArcGIS for javascript3.24版本,由于版本3與4在API等存在較大區(qū)別,就不一一列舉,詳細(xì)區(qū)別看官方...

    oogh 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<