文章出處

ECharts可以很方便的在網頁上繪制地圖,圖表,并且可以提供下載圖像,放大,縮小,拖動等功能,今天主要說一下它的地圖類型(type:'map')是如何實現的.

首先在ECharts地圖的坐標需要我們存儲在一個geoCoord屬性里,它是一個JS的字典對象,由鍵/值對組成,鍵表示點的名稱,值則表達它的坐標,由經緯度組成,它是一個數組,如[136.00,32.00]它就表示了一個坐標.

地圖類型的圖表需要關注的元素

title:標題,顯示這個地圖所表示的名稱

   title: {
                    text: '清大云點亮中國',
                    subtext: 'Tsingda.Cloud',
                    sublink: 'http://www.eee114.com',
                    x: 'center',
                    y: 'top',
                    textStyle: {
                        color: '#fff'
                    }
                }

toolbox:工具欄,顯示一些顯示的工具,放大,縮小,查看數據集,下載圖像等

    toolbox: {
                    show: true,
                    feature: {
                        mark: { show: true },
                        dataView: { show: true, readOnly: false },
                        restore: { show: true },
                        saveAsImage: { show: true }
                    }
                }

legend:圖標顯示,當series有多個地圖時,這個值用到顯示多個地圖的圖標,可以是橫向顯示和縱向顯示

    legend: {
                    x: 'left',
                    y: 'top',
                    data: ['在線', '離線'],//在線和離線對應的是series的名字
                    selectedMode: false,//選中懸浮
                    textStyle: {
                        color: '#fff'
                    }
                }

series:地圖顯示,用來疊放顯示地圖,你可以定義多個,它們之間的關系是第一個在最上面,以此類推.

 series: [
                    //默認
                    {
                        name: '底層模版',
                        type: 'map',
                        mapType: 'china',
                        data: provinceMap,
                        geoCoord: source,
                        itemStyle: {
                            normal: {
                                color: bgColor,
                                borderColor: "#eee",
                                label: {
                                    show: true,
                                    textStyle: {
                                        color: "#fff"
                                    }
                                }
                            }, emphasis: { color: "rgba(128, 128, 128, 0.5)" }
                        },
                    }]

markPoint:點標識,用來標識地圖上的后,這些點通常是被存儲在一個geoCoord對象上,這個對象是一個字典,這在文章開頭已經介紹過.

  markPoint: {//動態標記
                    large: true,//這個選項,懸浮自動失效
                    symbolSize: 2,
                    itemStyle: {
                        normal: {
                            shadowBlur: 2,
                            shadowColor: 'rgba(37, 140, 249, 0.8)',
                            color: onColor
                        }
                    },
                    data: []
                }

markPoint里的data對象是這個地圖上需要顯示的點,它是一個字符型數組,用來存儲geoCoord里的鍵!

setOption:將地圖對象添加到指定的地圖對象上

 var myChart = echarts.init(document.getElementById('main'));
var option={}; myChart.setOption(option);

動態構建地圖上的點標識markPoint

大概的思路是將要標記的點動態付給geoCoord和markPoint的data對象上,這樣就可以動態在地圖上標示點了

    $.get("/map/GetOffMap", function (data) {
                 
                    for (var i in data) {
                        option.series[0].geoCoord[data[i].longitude + "_" + data[i].latitude] = [parseFloat(data[i].longitude), parseFloat(data[i].latitude)];
                        option.series[1].markPoint.data.push({ name: data[i].longitude + "_" + data[i].latitude });
                    }

                    myChart.setOption(option);

效果如下

感謝您的閱讀!

謝謝與支持!

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()