echarts3D地球

引入文件

<script src="js/echarts.js"></script>
<script src="src/echarts-tooltip-carousel.js"></script>
<script src="js/echarts-gl.js"></script>
<!--地图插件-->
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>



index.html文件

<div id="earth" style=" position: absolute;right: 0px;bottom: 0px;width:40%;height:40%;margin: 0 auto;"></div>


echarts.js文件

var myChart = echarts.init(document.getElementById('earth'));
$.getJSON('earth/flights.json', function(data) {


function getAirportCoord(idx) {
return [data.airports[idx][3], data.airports[idx][4]];
}
var routes = data.routes.map(function(airline) {
return [
getAirportCoord(airline[1]),
getAirportCoord(airline[2])
];
});
var airports = data.airports.map(function(item) {
return {
coord: [item[3], item[4]]
}
});
var routesGroupByAirline = {};
data.routes.forEach(function(route) {
var airline = data.airlines[route[0]];
var airlineName = airline[0];
if(!routesGroupByAirline[airlineName]) {
routesGroupByAirline[airlineName] = [];
}
routesGroupByAirline[airlineName].push(route);
});


var pointsData = [];
data.routes.forEach(function(airline) {
pointsData.push(getAirportCoord(airline[1]));
pointsData.push(getAirportCoord(airline[2]));
});


var series = data.airlines.map(function(airline) {
var airlineName = airline[0];
var routes = routesGroupByAirline[airlineName];


if(!routes) {
return null;
}
return {
type: 'lines3D',
name: airlineName,


effect: {
show: true,
trailWidth: 2,
trailLength: 0.15,
trailOpacity: 1,
trailColor: 'rgb(30, 30, 60)'
},


lineStyle: {
width: 1,
color: 'rgb(50, 50, 150)',
// color: 'rgb(118, 233, 241)',
opacity: 0.1
},
blendMode: 'lighter',


data: routes.map(function(item) {
return [airports[item[1]].coord, airports[item[2]].coord];
})
};
}).filter(function(series) {
return !!series;
});


myChart.setOption({
backgroundColor: 'none',
globe: {
baseTexture: 'img/world.topo.bathy.2004011.jpg',
heightTexture: 'img/bathymetry_bw_composite_4k.jpg',
shading: 'lambert',

//控制地球大小
viewControl: {
alpha: 10,
beta: 160,
// targetCoord: [116.46, 39.92],
autoRotate: true,
autoRotateAfterStill: 10,
distance: 200
},
light: {
ambient: {
intensity: 0.4
},
main: {
intensity: 0.4
}
},


},


series: {
type: 'lines3D',


coordinateSystem: 'globe',


blendMode: 'lighter',


lineStyle: {
width: 1,
color: 'rgb(255, 81, 97)',
opacity: 0.1
},


data: routes
}
});
});

flights.json太大了,去echarts官网发请求的时候拷下来

js所用的背景图baseTexture: 'img/world.topo.bathy.2004011.jpg',


效果图


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Embrace924

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值