Comments (5)
你好,4.8版本的可以分享一下吗?
from arcgis-echarts3.
define(["dojo/_base/declare", "dojo/_base/lang", "esri/geometry/Point", "esri/geometry/ScreenPoint"],
function (e, t, n, i) {
return e("Echarts3Layer", null, {
name: "Echarts3Layer",
_map: null,
_ec: null,
_geoCoord: [],
_option: null,
_mapOffset: [0, 0],
constructor: function (e, t) {
this._map = e;
var n = this._echartsContainer = document.createElement("div");
n.style.position = "absolute",
n.id = "echarts_for_esri_maps",
n.style.height = e.height + "px",
n.style.width = e.width + "px",
n.style.top = 0,
n.style.left = 0,
e.container.querySelector('.esri-view-root').querySelector('.esri-view-surface').appendChild(n),
this._init(e, t)
},
_init: function (e, t) {
var o = this;
o._map = e,
o._ec = t,
o.getEchartsContainer = function () {
return o._echartsContainer
},
o.getMap = function () {
return o._map
},
o.geoCoord2Pixel = function (e) {
var t = new n(e[0], e[1]),
i = o._map.toScreen(t);
return [i.x, i.y]
},
o.pixel2GeoCoord = function (e) {
var t = o._map.toMap(new i(e[0], e[1]));
return [t.lng, t.lat]
},
o.initECharts = function () {
return o._ec = t.init.apply(o, arguments),
o._ec.Geo.prototype.dataToPoint = function (e) {
var t = new n(e[0], e[1]),
i = o._map.toScreen(t);
return [i.x, i.y]
},
o._bindEvent(),
o._ec
},
o.getECharts = function () {
return o._ec
},
o.setOption = function (e, t) {
o._option = e,
o._ec.setOption(e, t)
},
o._bindEvent = function () {
o._map.watch('animation', function (e) {
if (e && e.state === "running") {
o._echartsContainer.style.visibility = "hidden"
}
else {
o._ec.resize(),
o._echartsContainer.style.visibility = "visible"
}
}),
o._map.watch("zoom", function (e) {
o._ec.resize()
})
o._map.on('drag', function (e) {
if (e.action === "start") {
o._echartsContainer.style.visibility = "hidden"
}
else if (e.action === "end") {
o._ec.resize(),
o._echartsContainer.style.visibility = "visible"
}
}),
o._map.on("resize",
function () {
var e = o._echartsContainer.parentNode.parentNode;
o._mapOffset = [-parseInt(e.style.left) || 0, -parseInt(e.style.top) || 0],
o._echartsContainer.style.left = o._mapOffset[0] + "px",
o._echartsContainer.style.top = o._mapOffset[1] + "px",
setTimeout(function () {
o._ec.resize()
},
200),
o._echartsContainer.style.visibility = "visible"
}),
o._ec.getZr().on("dragstart",
function (e) {
}),
o._ec.getZr().on("dragend",
function (e) {
}),
o._ec.getZr().on("mousewheel",
function (e) {
o._lastMousePos = o._map.toMap(new i(e.event.x, e.event.y));
var t = e.wheelDelta,
n = o._map,
a = n.zoom;
t = t > 0 ? Math.ceil(t) : Math.floor(t),
t = Math.max(Math.min(t, 4), -4),
t = Math.max(n.constraints.effectiveMinZoom, Math.min(n.constraints.effectiveMaxZoom, a + t)) - a,
o._delta = 0,
o._startTime = null,
t && (n.zoom = a + t)
})
}
}
})
});
from arcgis-echarts3.
body {
background-color: #FFF;
overflow: hidden;
font-family: "Trebuchet MS", sans-serif;
}
#forkongithub a {
background: #000;
color: #fff;
text-decoration: none;
font-family: arial, sans-serif;
text-align: center;
font-weight: bold;
padding: 5px 40px;
font-size: 1rem;
line-height: 2rem;
position: relative;
transition: 0.5s;
}
#forkongithub a:hover {
background: #c11;
color: #fff;
}
#forkongithub a::before, #forkongithub a::after {
content: "";
width: 100%;
display: block;
position: absolute;
top: 1px;
left: 0;
height: 1px;
background: #fff;
}
#forkongithub a::after {
bottom: 1px;
top: auto;
}
@media screen and (min-width: 800px) {
#forkongithub {
position: fixed;
display: block;
top: 0;
right: 0;
width: 200px;
overflow: hidden;
height: 200px;
z-index: 9999;
}
#forkongithub a {
width: 200px;
position: absolute;
top: 60px;
right: -60px;
transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-o-transform: rotate(45deg);
box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.8);
}
}
</style>
var BJData = [
[{ name: '上海' }, { name: '北京', value: 1000 }],
[{ name: '广州' }, { name: '北京', value: 2000 }],
[{ name: '大连' }, { name: '北京', value: 3000 }],
[{ name: '南宁' }, { name: '北京', value: 4000 }],
[{ name: '南昌' }, { name: '北京', value: 5000 }],
[{ name: '拉萨' }, { name: '北京', value: 6000 }],
[{ name: '长春' }, { name: '北京', value: 7000 }],
[{ name: '包头' }, { name: '北京', value: 8000 }],
[{ name: '重庆' }, { name: '北京', value: 9000 }],
[{ name: '常州' }, { name: '北京', value: 9900 }]
];
var SHData = [
[{ name: '包头' }, { name: '上海', value: 1195 }],
[{ name: '昆明' }, { name: '上海', value: 2290 }],
[{ name: '广州' }, { name: '上海', value: 3380 }],
[{ name: '郑州' }, { name: '上海', value: 4470 }],
[{ name: '长春' }, { name: '上海', value: 5560 }],
[{ name: '重庆' }, { name: '上海', value: 6650 }],
[{ name: '长沙' }, { name: '上海', value: 7740 }],
[{ name: '北京' }, { name: '上海', value: 8830 }],
[{ name: '丹东' }, { name: '上海', value: 9920 }],
[{ name: '大连' }, { name: '上海', value: 9910 }]
];
var GZData = [
[{ name: '福州' }, { name: '广州', value: 1195 }],
[{ name: '太原' }, { name: '广州', value: 2920 }],
[{ name: '长春' }, { name: '广州', value: 3380 }],
[{ name: '重庆' }, { name: '广州', value: 4470 }],
[{ name: '西安' }, { name: '广州', value: 5560 }],
[{ name: '成都' }, { name: '广州', value: 6650 }],
[{ name: '常州' }, { name: '广州', value: 7740 }],
[{ name: '北京' }, { name: '广州', value: 8830 }],
[{ name: '北海' }, { name: '广州', value: 9920 }],
[{ name: '海口' }, { name: '广州', value: 9910 }]
];
var planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z';
var convertData = function (data) {
var res = [];
for (var i = 0; i < data.length; i++) {
var dataItem = data[i];
var fromCoord = geoCoordMap[dataItem[0].name];
var toCoord = geoCoordMap[dataItem[1].name];
if (fromCoord && toCoord) {
res.push([{
coord: fromCoord
}, {
coord: toCoord
}]);
}
}
return res;
};
var color = ['#a6c84c', '#ffa022', '#46bee9'];
var series = [];
[['北京', BJData], ['上海', SHData], ['广州', GZData]].forEach(function (item, i) {
series.push({
name: item[0] + ' Top10',
type: 'lines',
zlevel: 1,
effect: {
show: true,
period: 6,
trailLength: 0.6,
color: '#fff',
symbolSize: 3
},
lineStyle: {
normal: {
color: color[i],
width: 0,
curveness: 0.2
}
},
data: convertData(item[1])
},
{
name: item[0] + ' Top10',
type: 'lines',
zlevel: 2,
effect: {
show: true,
period: 6,
trailLength: 0,
symbol: planePath,
symbolSize: 15
},
lineStyle: {
normal: {
color: color[i],
width: 1,
opacity: 0.4,
curveness: 0.2
}
},
data: convertData(item[1])
},
{
name: item[0] + ' Top10',
type: 'effectScatter',
coordinateSystem: 'geo',
zlevel: 2,
rippleEffect: {
period: 4, //动画时间,值越小速度越快
brushType: 'stroke', //波纹绘制方式 stroke, fill
scale: 4, //波纹圆环最大限制,值越大波纹越大
trailLength: 0,
},
label: {
normal: {
show: true,
position: 'right',
formatter: '{b}'
}
},
symbol: 'circle',
symbolSize: function (val) {
return 4 + val[2] / 1000; //圆环大小
},
itemStyle: {
normal: {
color: color[i]
}
},
data: item[1].map(function (dataItem) {
return {
name: dataItem[0].name,
value: geoCoordMap[dataItem[0].name].concat([dataItem[1].value])
};
})
});
});
option = {
// backgroundColor: '#404a59',
title: {
text: 'ArcGIS JS API扩展Echarts3之模拟迁徙',
subtext: 'Develop By WanderGIS',
left: 'center',
textStyle: {
color: '#fff'
}
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
top: 'center',
left: 'right',
data: ['北京 Top10', '上海 Top10', '广州 Top10'],
textStyle: {
color: '#fff'
},
selectedMode: 'single'
},
visualMap: { //图例值控制
min: 0,
max: 10000,
calculable: true,
color: ['#ff3333', 'orange', 'yellow', 'lime', 'aqua'],
textStyle: {
color: '#fff'
}
},
geo: {
map: '',
label: {
emphasis: {
show: false
}
},
roam: true,
itemStyle: {
normal: {
areaColor: '#323c48',
borderColor: '#404a59'
},
emphasis: {
areaColor: '#2a333d'
}
}
},
series: series
};
// 使用刚指定的配置项和数据显示图表。
overlay.setOption(option);
});
});
</script>
from arcgis-echarts3.
希望大家可以能够修改支持 arcgis for js 4.8和echarts 3 版本的heatmap
from arcgis-echarts3.
你应该fork个版本出来,把你的代码迁入,这样才方便大家修改啊。
from arcgis-echarts3.
Related Issues (20)
- 可以迁徙进入某个城市吗? HOT 1
- 页面无法加载进来 HOT 1
- 可以增加arcgis for js API 4.x版本吗? HOT 3
- 发现部分echart3功能无法实现 HOT 1
- 能更新到ECharts 4版本吗?
- Echarts3layer里没有Clear的方法吗?
- 本地项目引入arcgis-echarts3后报错找不到echarstLayer HOT 5
- 底图怎么引用arcgis的mapServer图层?
- 柱状图或饼状图的options怎么设置 HOT 1
- demo的数据可以提供下嘛
- arcgis-echarts3实现北京公交路线 - 线特效时实现不了,main.js报错 HOT 1
- 你好,请教下,迁徙图怎么才能让飞机动画一次呢?
- vue项目怎么用啊 HOT 1
- 拖拽地图时不如原生百度地图的流畅 HOT 1
- dist/main.js是做什么用的?
- Arcgis 穿透地图点击事件 HOT 1
- 能否把Echart3Layers开源??
- Coordinate system can only be cartesian2d or geo in lines
- Cannot read property 'prototype' of undefined in Echarts3Layer HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arcgis-echarts3.