Arcgis 数据,视图

1. 解释

本着能不解释代码就不解释代码的精神,我先给大家讲一下我讲这个JsAPI的思路。

它分五个主要学习的部分:

  • 数据
  • 视图
  • 空间分析
  • 符号渲染
  • 小部件

其他不说不代表不会用到,但是相对于入门而言,这五个部分足够了。其重点讲解前三部分。

如果看文字不舒服,那么上个结构图:

img

而上面两个案例,拿同一份数据结合二三维视图作了展示。

抛开代码细节(如入口、引用、页面组织、样式等)不谈,我首先把代码中用于表示“数据”和“视图”的Js代码抽取出来:

img

左边是二维的,右边是三维的。

分别用两个对象来描述“数据”和“视图”,

用Map类实例出来的【map对象】以描述数据;用MapView类、SceneView类实例出来的【view对象】以描述视图

那么你可能会问了,倘若已经在代码里做出来了数据与视图,有什么桥梁可以连接它们呢?我们把view的代码展开。

img

我们知道,在Js中通过new关键字实例化一个类,SceneView类的构造函数指定了一个Js中的Object对象作为参数,这个Object对象是这样的:

{
    container: "viewDiv",
    map: map,
    scale: 50000000,
    center: [-101.17, 21.78]
}

其中,就有一个Map类型的属性叫map,将上面实例化的map对象赋予给它就实现了视图(SceneViewMapView)与数据(Map)的连接。

其他的属性我们暂且不管,至少,在Js代码中,我们知道了哪些代码用于构造地理数据——用Map类、我们知道了哪些代码用于构造视图——View类。

哦对了,SceneViewMapView都继承自View类。虽然我们知道Js是弱类型的语言,但是Dojo帮我们做了一些面向对象的工作。

在这里,我沿用更广泛的说法,那就是用“类”这个称呼去替代官方的“模块”这个称呼,其实MapView、MapSceneView都是模块,它们存在于js包里面。

2. 补充

如果上面看得懂,这里可以作为补充材料来阅读。

2.1 数据如何组织

相信肯定有筒子开始疑问Map对象的构造参数中应该如何组织属性了吧,这个时候就需要去查示例代码和官方API参考了。

我可以简单说一说。先看一下这个类的继承关系图:

img

清晰看到Map类的位置。

有趣的是,Map有WebMapWebScene两个子类,由于继承和多态的特征,说明视图中map属性也可以设为WebMapWebScene

这有什么区别呢?暂且不说后期展开。

再展开Map类的属性:

img

常用的有三个属性:底图(basermap)、可操作图层集合(layers)、地形图层(ground)。

  1. basemap属性可使用预置的底图,也可以使用自定义的Basemap对象;
  2. [★]layers属性是可操作的Layer对象的集合,Layer类有很多子类,如几何图层、地图图层、要素图层等,这些到以后会讲,这些都是赤果果的数据组成啊
  3. ground属性表示地图高程,可以用预置的世界高程数据,也可以自定义高程图层,后期会讲。

哦对了,对数据的在线简单编辑、绘制,也是由数据部分组织的,后面展开。

2.2 视图有什么用

视图是管理“看得到”的东西的。

其一,我们看得到的二三维地图、场景都是由它渲染的;

其二,我们需要对数据进行展示时,是由它进行弹窗(Popup)展示的;

这些业务和数据无关,任何一份数据都可以由视图进行前端渲染、数据展示,所以被抽取出来了,做到了高内聚低耦合、数据视图分离。

参考网址

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值