arcgis api 4.x for js 集成 Echarts4 实现模拟迁徙图效果(附源码下载)

Posted giserhome

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcgis api 4.x for js 集成 Echarts4 实现模拟迁徙图效果(附源码下载)相关的知识,希望对你有一定的参考价值。

前言

关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 4.x for js:esri 官网 api,里面详细的介绍 arcgis api 4.x 各个类的介绍,还有就是在线例子:esri 官网在线例子,这个也是学习 arcgis api 4.x 的好素材。

arcgis api 4.x for js 集成 echarts 实现迁徙图效果的关键问题在于 echarts 坐标系以及 arcgis 坐标系不一致,因此要进行 echarts坐标系与 arcgis 坐标系的转换,这里采用的方法是注册一个坐标系统命名为 arcgis(名称可自由拟定)的坐标系。在此基础上,采用 dojo 的 define 定义了一个名为 EchartsLayer 的模块。

define(["dojo/_base/declare", "dojo/_base/lang", "esri/geometry/Point", "esri/geometry/SpatialReference"],
function (declare, lang, n, SpatialReference) 
return declare("EchartsLayer", null, 
name:"EchartsLayer",
view: null,
box: null,
chart: null,
chartOption: null,
visible:true,
constructor: function (view, option) 
 
echarts.registerCoordinateSystem(‘arcgis‘, this.getE3CoordinateSystem(view));
this.init(view,option);
,
init:function(view, option) 
this.setBaseMap(view);
this.createLayer();
//this.setChartOption(option);
 
,
……

最终实现效果图:

2D 视图效果

技术图片

3D 视图效果

技术图片

创建 EchartsLayer 模块的构造函数,需要注册 arcgis 坐标系函数

//需要先引用echarts.js
echarts.registerCoordinateSystem(‘arcgis‘, this.defineCoordinateSystem(view));

在 defineCoordinateSystem() 函数中,对 echarts 里面的几个函数进行了重写,其中主要包含 dataToPoint、pointToData 等坐标转换内容。

  • dataToPoint 函数重写
CoordSystem.prototype.dataToPoint = function dataToPoint(data) 
var point = 
type:"point",
x:data[0],
y:data[1],
spatialReference:new SpatialReference(4326)
;
var px = map.toScreen(point);
var mapOffset = this._mapOffset;
return [px.x - mapOffset[0], px.y - mapOffset[1]];

更多的详情见GIS之家小专栏

文章尾部提供源代码下载,对本专栏感兴趣的话,可以关注一波

以上是关于arcgis api 4.x for js 集成 Echarts4 实现模拟迁徙图效果(附源码下载)的主要内容,如果未能解决你的问题,请参考以下文章

arcgis api 4.x for js之图层管理篇

arcgis api 4.x for js 聚合效果图(附源码下载)

arcgis api 4.x for js扩展MapImageLayer支持图片图层加载

arcgis api 4.x for js之图层管理篇

arcgis api 4.x for js 结合 Echarts4 实现统计图(附源码下载)

ArcGIS API for JavaScript 4.x 与 npm