Arcgis API for JS——普通分屏联动及二三维联动
对于二三维联动,有多种方法进行实现,当时旧项目使用了当时能掌握的一种写法,在技能提升了这么多后当然要对这些写法做一个总结。
一、通过监听View上的鼠标事件变化来进行分屏联动(同一坐标系)
(同理可以用此方法进行二三维联动)
前期工作,简单创建了四个View:
(已经不再是当时那种小白,建4个View写4遍var view = new MapView(),想想真丢人)
var views = []
//根据需要来创建多个视图并绑定地图容器div的id
for (var i = 0; i < 4; i++) {
var view = new MapView({
map: map,
container: 'map_' + i
})
views.push(view);
}
接下来就是多屏联动的功能了:
on('load', function () {
views && views.forEach(function (view) {
//定义一个范围变量
var fullextent = null;
//设置鼠标滚轮事件
view.on("mouse-wheel", function (e) {
//延迟获取范围的函数
window.setTimeout(function () {
//获取操作图层的范围
fullextent = view.extent
//遍历所有视图来设置这个范围
views.forEach(function (nview) {
nview.extent = fullextent
})
}, 1000)
})
//设置鼠标拖拽事件
view.on("drag", function (e) {
//获取操作图层的范围
fullextent = view.extent
//遍历所有视图来设置这个范围
views.forEach(function (nview) {
nview.extent = fullextent
})
})
})
})
感觉代码简洁了好多,下面就是效果图了(虽然丑爆了,毕竟是简单记录一下嘛)。
二、通过控制放置View的DIV进行二三维联动(不同坐标系)
(同理可以用此方法进行分屏联动)
使用Jquery Easy UI插件,使用了tab选项卡,不同的选项卡放置了MapView和SceneView
<div id="tt" class="easyui-tabs">
<div id="mapDiv" title=" 二维地图" class="tab-page"></div>
<div id="sceneDiv" title="三维地图" class="tab-page"></div>
</div>
通过点击不同的选项卡进行联动
//绑定事件
$('#tt').tabs({
onSelect: function (title, index) {
if (index == 0) {
var params2Dto3D = new ProjectParameters({
geometries: [sceneView.extent],
outSpatialReference: s2364
});
geometryService1.project(params2Dto3D).then(function (result) {
mapView.extent = result[0]
})
}
else {
var params3Dto2D = new ProjectParameters({
geometries: [mapView.extent],
outSpatialReference: s4326
});
geometryService1.project(params3Dto2D).then(function (result) {
sceneView.extent = result[0];
sceneViewlocal.extent = result[0];
});
//sceneViewlocal.clippingArea=xzqhLayer.fullExtent.expand(0.5); //即地图裁剪至xzqhLayer范围的一半。
//sceneViewlocal.extent = mapView.extent; //这种方式取决于地图坐标系相同
}
}
});
Arcgis API for JS——普通分屏联动及二三维联动的更多相关文章
- arcgis api for js入门开发系列二十打印地图的那些事
前面我写过关于利用arcgis api for js打印地图的,但是打印地图服务都是基于arcgis server发布的,arcgis api加载在线地图,比如天地图.百度地图.高德地图等,底图都是打 ...
- arcgis api for js入门开发系列四地图查询(含源代码)
备注:由于实现本篇功能的需求,修改了地图数据的dlsearch.mxd,然后更新了地图服务,需要的在文章最后有提供最新的mxd以及源代码下载的 上一篇实现了demo的地图工具栏,本篇新增地图查询功能, ...
- arcgis api for js入门开发系列一arcgis api离线部署
在我的GIS之家QQ群里,很多都是arcgis api for js开发的新手,他们一般都是GIS专业的学生,或者从计算机专业刚刚转向来的giser,他们难免会遇到各种webgis开发的简单问题,由于 ...
- arcgis api for js入门开发系列十一地图统计图
上一篇实现了demo的叠加SHP图层,本篇新增地图统计图,截图如下: 地图统计图实现的思路如下:利用拓展arcgis api的js文件(MapChartGraphic.js以及MapChartGrap ...
- 转:arcgis api for js入门开发系列四地图查询
原文地址:arcgis api for js入门开发系列四地图查询 arcgis for js的地图查询方式,一般来说,总共有三种查询方式:FindTask.IdentifyTask.QueryTas ...
- Arcgis API for JS——打印控件乱码
在通过Arcgis API for JS编写打印控件进行地图下载时,总发现地图字体乱码,如下图: 解决方法: 在装有ArcGIS Server,要调用服务的电脑或服务器上找到下图文件夹
- ArcGIS API for js Legend(图例)
1.说明 有关怎么把ArcGIS API for js部署到IIS上,请参考我上面的写的博客https://www.cnblogs.com/net064/p/10302660.html 2.运行效果 ...
- arcgis api for js 地图查询
arcgis api for js入门开发系列四地图查询(含源代码) 上一篇实现了demo的地图工具栏,本篇新增地图查询功能,包括属性查询和空间查询两大块,截图如下: 属性查询效果图: 空间查询效 ...
- arcgis api for js 4.X 出现跨域问题
arcgis api for js 4.X 出现跨域问题 XMLHttpRequest cannot load http://localhost/4.3/4.3/esri/workers/mutabl ...
随机推荐
- 小白的python之路10/31&11/1文件操作系统
文件操作系统的介绍 ext4的superblock块是超级快,innode 块是专门存放文件信息的, block count将硬盘做成block块,对操作系统而言写在block块上就可了,eg:文件1 ...
- MobX 学习
资源汇集帖: https://github.com/mobxjs/awesome-mobx/blob/master/README-CN.md 中文文档: http://cn.mobx.js.org/ ...
- CPU的系统总线
主频:时钟频率,用来表示CPU的运算速度.主频=外频*倍频. 外频:基准频率,系统总线的工作频率,外频是CPU与主板之间同步运行的速度,大部分电脑系统中外频也是内存与主板之间同步运行的速度,在这种方式 ...
- SSM中的Mybatis的操作
一:整合日志含有log4j和logback logback是log4j的升级版他性能提升较大,有些甚至达到10倍以上,占的内存更小,slf4j能很好的整合它,还有很多数不胜数的优势 1.下载jar包, ...
- Spring MVC学习step1——框架熟悉
b站视频链接,整理的一些笔记,图是网上找到的黑马教案,侵权删,在此记录学习笔记 SpringMVC框架 步骤: 第一步:发起请求到前端控制器(Dispatcherservlet) 第二步:前端控制器请 ...
- C语言:递归函数n!
#include <stdio.h> long recursion(int n); void main(){ int n; long result; printf("input ...
- No space left on device Linux系统磁盘空间已满
1. 删除系统日志等 删除生成 core,mbox等文件 #find / -name core|xargs rm –rf 删除日志 2.重起机器
- 1、Python2.7编译安装
下载Python安装包(下载地址:https://www.python.org/downloads/) 选择Python 2.7.3版本 防止交互式模式下出现方向键乱码问题,需安装相关包 yum in ...
- 七月在线爬虫班学习笔记(六)——scrapy爬虫整体示例
第六课主要内容: 爬豆瓣文本例程 douban 图片例程 douban_imgs 1.爬豆瓣文本例程 douban 目录结构 douban --douban --spiders --__init__. ...
- 同一脚本sh 脚本名 报Syntax error: "(" unexpected而./脚本名不报错,求解!!
同一脚本sh 脚本名 执行时报Syntax error: "(" unexpected:而./脚本名执行不报错,为什么呢 脚本内容如下: function usage(){ ech ...