ArcGIS API for JavaScript 4.2学习笔记[8] 2D与3D视图同步
同一份数据不同视图查看可能用的比较少,因为3D视图放大很多后就和2D地图差不多了,畸变很小,用于超大范围的地图显示时有用,很多时候都是在平面地图上进行分析、查询、操作。教学需要可能会对这个有要求?
本文没有深究两个比较复杂的函数,希望有朝一日能读懂吧,对于这种同一个Map对象不同视图的同步显示,建议直接copy后半截内容即可。
鹰眼功能和这个类似,不过鹰眼功能(即上一篇文章)是利用watch()和watchUtils.when()来实现的同步,这个例子又有什么不同呢?探究之。
直接看结果图:

看起来就是两个无边框的DIV,宽度各占50%。
实际上操作的结果就是,在任意一个视图拖动、缩放、旋转视图,另一个也跟着变,几乎就是放大版的鹰眼,也可以说是鹰眼的另一种写法。
给出require的引用:
require(
[
"esri/Map",
"esri/views/MapView",
"esri/views/SceneView",
"esri/core/watchUtils",
"dojo/domReady!"
],
function(Map,MapView, SceneView,watchUtils){
//你的代码
}
);
嗯?又是watchUtils?看来和监听少不了干系了。
//事实上,本例还是用watch监听和watchUtils监听完成的同步,但是代码难于理解,就没有仔细深究。
看骨干部分:
function(Map,MapView,SceneView,watchUtils){
var map = new Map({});
var view1 = new SceneView({});
var view2 = new MapView({});
var synchronizeView = function(view, others){};
var synchronizeViews = function(views){};
synchronizeViews([view1,view2]);
}
实例化一张地图,实例化两个视图,看来和上一个例子还是有区别的。
对此,博主表示暂时保留原代码。
因为synchronizeView长达60行,这个方法一定不普通。
博主的建议是:
如果需要对同一份底图的2D和3D视图进行同步观察显示,那么请直接把这两个syn方法copy过来,甚至包装成一个方法都可以,传入参数是两个view即可。
有兴趣的同学可以查阅这个类:esri/core/Collection
这两个难于理解的方法体内用到了这个类和其几个方法,如map()方法、slice()方法、concat()方法。
ArcGIS API for JavaScript 4.2学习笔记[8] 2D与3D视图同步的更多相关文章
- ArcGIS API for JavaScript 4.2学习笔记[10] 2D添加指北针widget、视图保存、视图padding(第二章完结)
这几个例子是第二章除了入门之外比较简单的几个,就做个合集,把最核心的代码(第二参数)和 引用放上来即可,不作多解释. 2D地图添加指北针widget 2D地图一般修正方向为正北方就需要这个widget ...
- ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录
放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...
- ArcGIS API for JavaScript 4.2学习笔记[1] 显示地图
ArcGIS API for JavaScript 4.2直接从官网的Sample中学习,API Reference也是从官网翻译理解过来,鉴于网上截稿前还没有人发布过4.2的学习笔记,我就试试吧. ...
- ArcGIS API for JavaScript 4.2学习笔记[5] 官方API大章节概述与内容转译
内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2 [Get Started] 类似于绪论一样的东西,抽取了最需要关注的几个例子.如:加载Map和View, ...
- ArcGIS API for JavaScript 4.2学习笔记[21] 对3D场景上的3D要素进行点击查询【Query类学习】
有人问我怎么这个系列没有写自己做的东西呢? 大哥大姐,这是"学习笔记"啊!当然主要以解读和笔记为主咯. 也有人找我要实例代码(不是示例),我表示AJS尚未成熟,现在数据编辑功能才简 ...
- ArcGIS API for JavaScript 4.2学习笔记[7] 鹰眼(缩略图的实现及异步处理、Promise、回调函数、监听的笔记)
文前说明:关于style就是页面的css暂时不做评论,因为官方给的例子的样式实在太简单了,照抄阅读即可. 这篇文章有着大量AJS 4.x版本添加的内容,如监听watch.Promise对象.回调函数. ...
- ArcGIS API for JavaScript 4.2学习笔记[23] 没有地图如何进行查询?【FindTask类的使用】
从第一篇到现在都是基于地图的,不管怎么样,不管是2D还是3D,至少有个图. 这次来个没有图的例子,看看纯文字的空间查询是什么样的. 本例适用于后台查询或低性能电脑的查询. 预览图 由于4.3和4.2的 ...
- ArcGIS API for JavaScript 4.2学习笔记[2] 显示3D地图
3D地图又叫场景. 由上一篇可知, require入口函数的第一个参数是字符串数组 ["esri/Map", "esri/views/MapView", &qu ...
- ArcGIS API for JavaScript 4.2学习笔记[17] 官方第七章Searching(空间查询)概览与解释
空间分析和空间查询是WebGIS有别于其他Web平台的特点.到这一章,就开始步入空间分析的内容了. [Search widget] 介绍空间查询的核心小部件"Search". [S ...
随机推荐
- servlet+jsp+jdbc实现从数据库查询用户信息到页面
工程创建这里就不在累述了,直接从显示User信息列表开始. 备注:我用的是servlet3的注解功能实现的,所以不需要配置web.xml 这是我的工程目录: 首先我们创建实体类: public cla ...
- laravel5.3统计 withCount()方法的使用
在laravel5.3之后可以使用withCount()这个方法. 注意:一定要是5.3版本之后,5.2和5.1都会报方法未定义 举个栗子: App\Post::withCount('comments ...
- 2718:晶晶赴约会-poj
总时间限制: 1000ms 内存限制: 65536kB 描述 晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1.3.5有课必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出YES:如果不能 ...
- js之ECMAscript
1.基本数据类型和一些运算 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- node.js爬虫
这是一个简单的node.js爬虫项目,麻雀虽小五脏俱全. 本项目主要包含一下技术: 发送http抓取页面(http).分析页面(cheerio).中文乱码处理(bufferhelper).异步并发流程 ...
- 小随笔:利用Shader实现模型爆炸和沙粒化的效果
0x00 前言 上一篇小随笔<小随笔:利用Shader给斯坦福兔子长毛和实现雪地效果>中,我和大家聊了聊著名的斯坦福兔子和利用geometry shader实现的一些效果.这篇文章继续沿用 ...
- 鼠标悬停,图片放大 CSS实现
因为最近做的项目刚好用到了这个实现,分享出来 class=enlarge 为div标签的class div img 为标签 .enlarge div img:hover{ transform: s ...
- VSCode插件及用户设置
第一部分:插件 VSCode内置"emmet"插件,"convert to utf-8"等插件效果!十分强大!代码提示功能特别强悍! 插件地址:点击此处! 推荐 ...
- 运行期以索引获取tuple元素-C++17
//运行期以索引获取tuple元素-C++17 //需支持C++17及以上标准的编译器,VS2017 15.5.x.CodeBlocks 16.01 gcc 7.2 //参见:http://purec ...
- 使用questionsModel.values()后不能获取模型中的属性对应的外键属性值的解决方式
class QuestionsModel(models.Model): author = models.ForeignKey(FrontUserModel,null=True) content = m ...