ECharts可以很方便的在網(wǎng)頁上繪制地圖,圖表,并且可以提供下載圖像,放大,縮小,拖動等功能,今天主要說一下它的地圖類型(type:'map')是如何實現(xiàn)的。
首先在ECharts地圖的坐標需要我們存儲在一個geoCoord屬性里,它是一個JS的字典對象,由鍵/值對組成,鍵表示點的名稱,值則表達它的坐標,由經(jīng)緯度組成,它是一個數(shù)組,如[136.00,32.00]它就表示了一個坐標.
地圖類型的圖表需要關注的元素
title:標題,顯示這個地圖所表示的名稱
title: {
text: '清大云點亮中國',
subtext: 'Tsingda.Cloud',
sublink: 'http://www.eee114.com',
x: 'center',
y: 'top',
textStyle: {
color: '#fff'
}
}
toolbox:工具欄,顯示一些顯示的工具,放大,縮小,查看數(shù)據(jù)集,下載圖像等。
toolbox: {
show: true,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
restore: { show: true },
saveAsImage: { show: true }
}
}
egend:圖標顯示,當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對象上,這個對象是一個字典,這在文章開頭已經(jīng)介紹過.
markPoint: {//動態(tài)標記
large: true,//這個選項,懸浮自動失效
symbolSize: 2,
itemStyle: {
normal: {
shadowBlur: 2,
shadowColor: 'rgba(37, 140, 249, 0.8)',
color: onColor
}
},
data: []
}
markPoint里的data對象是這個地圖上需要顯示的點,它是一個字符型數(shù)組,用來存儲geoCoord里的鍵!
setOption:將地圖對象添加到指定的地圖對象上
var myChart = echarts.init(document.getElementById('main'));
var option={};
myChart.setOption(option);
動態(tài)構建地圖上的點標識markPoint
大概的思路是將要標記的點動態(tài)付給geoCoord和markPoint的data對象上,這樣就可以動態(tài)在地圖上標示點了
$.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);
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- vue.js中使用echarts實現(xiàn)數(shù)據(jù)動態(tài)刷新功能
- 詳解vue文件中使用echarts.js的兩種方式
- echarts同一頁面中四個圖表切換的js數(shù)據(jù)交互方法示例
- 利用ECharts.js畫K線圖的方法示例
- HTML5+JS+JQuery+ECharts實現(xiàn)異步加載問題
- vue.js如何將echarts封裝為組件一鍵使用詳解
- vue.js+Echarts開發(fā)圖表放大縮小功能實例
- jsp利用echarts實現(xiàn)報表統(tǒng)計的實例
- Echarts.js無法引入問題解決方案