java实现arcgis地图分屏(双图)

java实现arcgis地图分屏(双图)

本博文采用Java语言,利用arcgis api for javascript 4.16地图服务,实现地图分屏,直接上源码:

视图对比

html,body{

width: 100%;

height: 100%;

padding: 0;

margin: 0;

}

#targetWindow,#referenceWindow{

height: 100%;

margin: 0;

padding: 0;

}

#referenceWindow{

position: absolute;

right: 0;

z-index: 0;

}

#contrastSetting{

width: 377px;

background-color: white;

padding: 8px;

}

.divHidden{

display: none!important;

}

.options{

margin-left: 10px;

display: inline-block;

position: absolute;

bottom: 14px;

}

.displayStyle{

margin-top: 19px;

}

#targetDamChart,#referenceDamChart{

background-color: white;

padding: 15px;

}

/**

* 把targetWindow和referenceWindow分开比较好(即主地图和参考地图分开定义和设置)

*/

require([

"esri/Map",

"esri/views/MapView",

"esri/layers/FeatureLayer",

"esri/core/watchUtils",

"esri/widgets/Expand",

"esri/widgets/Fullscreen",

"esri/widgets/Sketch",

"esri/layers/GraphicsLayer",

"esri/geometry/Point",

"esri/Graphic",

"esri/widgets/Legend",

"esri/widgets/BasemapToggle",

"esri/widgets/TimeSlider", //时间滑块

//3D

"esri/views/SceneView",

"esri/widgets/Fullscreen/FullscreenViewModel",

"esri/symbols/PictureMarkerSymbol",

"esri/renderers/visualVariables/ColorVariable",

"esri/symbols/MeshSymbol3D",

"esri/symbols/LineSymbol3DLayer",

"esri/symbols/PolygonSymbol3D"

],function (Map,MapView,FeatureLayer,watchUtils,Expand,Fullscreen,Sketch,GraphicsLayer,

Point,Graphic,Legend, BasemapToggle,TimeSlider, SceneView,FullscreenViewModel,PictureMarkerSymbol,

ColorVariable,MeshSymbol3D,LineSymbol3DLayer, PolygonSymbol3D) {

/**

* targetWindowConfiguration 主地图设置

*/

var targetWindowMap = new Map({

basemap:"osm",

});

var targetWindowView = new MapView({

map:targetWindowMap,

container:"targetWindow",

//地图中心坐标

center:[108.63033475, 34.36030168],

zoom:12

});

/**

* referenceWindowConfiguration 参考地图设置

*/

var referenceWindowMap = new Map({

basemap:"osm",

});

var referenceWindowView = new MapView({

map:referenceWindowMap,

container:"referenceWindow",

center:[108.63033475, 34.36030168],

zoom:12,

ui:{

components:[]

},

popup:{

dockOptions:{

position:"top-left"

}

}

});

//禁止参考窗口地图通过鼠标控制移动

referenceWindowView.on(["drag","mouse-wheel"],function (event) {

event.stopPropagation()

});

//referenceWindow通过targetWindow来控制地图移动

targetWindowView.when(function () {

referenceWindowView.when(function () {

watchUtils.watch(targetWindowView,"extent",function (extent) {

//stationary表示targetWindowView中的地图移动完毕

if (targetWindowView.stationary){

//将显示中心同步

referenceWindowView.goTo({

center:targetWindowView.center

})

}

//两个对比窗口的显示范围同步

referenceWindowView.extent = extent

})

})

});

$(function () {

//使用select下拉框来控制要素图层的显示

$("#target").on("change",function (event) {

damMessageTarget.visible = false;

// riverMessageTarget.visible = false;

ClearChart();

switch (event.originalEvent.target.value) {

case "damMessageTarget":

damMessageTarget.visible = true;

break;

}

});

$("#reference").on("change",function (event) {

damMessageReference.visible = false;

ClearChart();

switch (event.originalEvent.target.value) {

case "damMessageReference":

damMessageReference.visible = true;

break;

}

});

//添加可拖动div

$("#displayStyle>label>input[type='radio']").on("click",function (event) {

//获取点击的radio的value

var val = event.target.value;

switch (val) {

case "doubleDivs":

doubleDivs();

break

}

});

//初始目标div的宽度

var initialTargetWindowsWidth = $("#targetWindow").width();

//初始参考div的宽度

var initialreferenceWindowsWidth = initialTargetWindowsWidth;

function init() {

//https://www.jqueryui.org.cn/api/3725.html

$("#targetWindow").resizable({

maxHeight: $("#targetWindow").height(),

maxWidth: $("#targetWindow").width() * 1.27,

minHeight: $("#targetWindow").height(),

minWidth: $("#targetWindow").width(),

//拉动对比div时触发该方法

resize: function (event, ui) {

//获取目标div的改变值,ui.size.width 是当前目标div的宽度

var change = initialTargetWindowsWidth - ui.size.width

//改变参考div的宽度

$("#referenceWindow").width(initialreferenceWindowsWidth + change)

}

})

}

//初始化resizable方法,以后切换模式只用开关闭就行啦,不用新建,节省资源。

init();

//双图模式

function doubleDivs() {

//关闭resizable方法,并将对比和参考的div还原成初始状态

$("#targetWindow").resizable("option", "disabled", true);

$("#targetWindow").width(initialTargetWindowsWidth)

$("#referenceWindow").width(initialreferenceWindowsWidth)

}

})

})

展示模式:

双图

实现效果为两个地图左右分屏,以下为效果图:

这个都是用的在线地图,加载速度不会太快,所以可以将arcgis的api部署在本地,加载速度就会很快了。建议部署最新的argis api,功能更齐全,官方文档也全一些。

用到的jquery-ui.css有需要的可以点击百度网盘链接下载~

链接:https://pan.baidu.com/s/16QJsEX0e2l_wZqZgObi-mA

提取码:t3ht

以后还会更新地图的选择日期进行打点,弹框,敬请期待!

java实现arcgis地图分屏(双图)相关教程

进程间通信——基于共享内存和信号量实现共享队列

进程间通信——基于共享内存和信号量实现共享队列 一、进程间的通信方式 进程间通信就是在不同进程之间传播或交换信息,通信方式一般分为管道、命名管道(FIFO)、消息队列、信号量(Semaphore)、共享内存(Shared Memory)五种。 管道:只能用于父子进程或

Java 求助! 为什么我拿不到错误信息,e.getMessage()

Java 求助! 为什么我拿不到错误信息,e.getMessage() 我明明打印了错误信息的啊? e.getMessage() 是空,为什么? 一声声带着惊讶,带着恐慌,带着质疑,带着无奈的话语,从某个角落里传出。 议论纷纷...... 似乎拿不到异常信息是个僵局,只能用 玄 学 两个

springboot+Hystrix+eureka+Openfeign实现分布式生产者消费者直

springboot+Hystrix+eureka+Openfeign实现分布式生产者消费者直接的调用以及解决服务降级、服务熔断、服务限流等问题(1) springboot+Hystrix+eureka+Openfeign实现分布式生产者消费者直接的调用以及解决服务降级、服务熔断、服务限流等问题(1) Hystrix是什么

Javaweb——(day01)html与css

Javaweb——(day01)html与css 文章目录 HTML与CSS B/S软件的结构 前端的开发流程 网页的组成部分 HTML简介 创建HTML文件 HTML 标签介绍 常用标签 1.font字体标签 2.特殊字符 3.标题标签 4.超链接 5.列表标签 6.img标签 7.表格标签 8.跨行跨列表格 9.了解ifram

【Java】对象与类

【Java】对象与类 对象和类 类和对象 类的成员 属性 方法 方法重载 方法参数 方法参数的值传递机制 可变个数的形参 构造器 对象 匿名对象 对象的内存解析 类的三大特征 封装 权限修饰符 继承 多态 关键字 this package import 类和对象 属性 属性(成员变量)

PAT甲级1099 Build A Binary Search Tree (30分)|C++实现

PAT甲级1099 Build A Binary Search Tree (30分)|C++实现 一、题目描述 原题链接 For each test case, print in one line the level order traversal sequence of that tree. All the numbers must be separated by a space, with no extra space at the end

【React】实现div高度适配浏览器窗口大小

【React】实现div高度适配浏览器窗口大小 实现的方法有好几种,本人仅提供自己在实现过程中使用的这一种。 div style={{height:100%,position:absolute,width:100%,left:0,top:0}} {/* 中间内容省略 */}/div 实现效果:

Laravel实现权限控制

Laravel实现权限控制 文章目录 一、RBAC 二、认证授权逻辑 三、具体实现 创建表的迁移文件 用户: 角色: 权限: 创建控制器 修改路由文件 路由别名 拓展FormRequest验证 中间件过滤 控制器方法 RBAC: role base access control 基于角色的用户访问权限控制权

java控制分屏_java实现arcgis地图分屏(双图)相关推荐

  1. java闪屏_java 2D绘画出现闪屏有关问题~

    java 2D绘画出现闪屏有关问题~ java 2D绘画出现闪屏有关问题~ 日期:2014-05-20 浏览次数:20305 次 java 2D绘画出现闪屏问题~~急 用java 2D绘图,用Imag ...

  2. 为什么java退出全屏_Java全屏模式与退出全屏:

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 浏览器全屏模式的启动函数requestFullscreen(),而且需要附带各浏览器的js方言前缀. Js代码: // 启动全屏!判断浏览器的种类 fun ...

  3. java 控制台 全屏_Java全屏模式与退出全屏:

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 浏览器全屏模式的启动函数requestFullscreen(),而且需要附带各浏览器的js方言前缀. Js代码: // 启动全屏!判断浏览器的种类 fun ...

  4. html把地图显示全屏显示,Openlayers实现地图全屏显示

    本文实例为大家分享了Openlayers实现地图全屏显示的具体代码,供大家参考,具体内容如下 1.新建一个html页面,引入ol.js和ol.css文件,然后在body中创建一个div标签,用来作为地 ...

  5. java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

    本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...

  6. java锁屏_JAVA设置桌面不锁屏设置

    //下面是编译命令 // javac -encoding utf-8 Main.java import javax.swing.*; import java.awt.*; import java.aw ...

  7. java gps 距离计算_Java教程之地图中计算两个GPS坐标点的距离

    原标题:Java教程之地图中计算两个GPS坐标点的距离 在日常开发中,我们难免要计算两个左边之间的距离,但是地图软件api的接口普遍要求我们必须要先将坐标点传递到他们服务器,然后计算出一个距离返还给我 ...

  8. java如何设置网页全屏_java中如何进行全屏方式和窗口方式的转换 详细??

    java 中如何进行全屏模式和窗口模式的转换 代码如下所示: import java.awt.Dimension; import java.awt.DisplayMode; import java.a ...

  9. java实现九宫格解锁_Java计算手机九宫格锁屏图案连接9个点的方案总数

    (一)问题 九宫格图案解锁连接9个点共有多少种方案? (二)初步思考 可以把问题抽象为求满足一定条件的1-9的排列数(类似于"八皇后问题"),例如123456789和9876543 ...

最新文章

  1. CHIL-SQL-MIN() 函数
  2. python编程序列类型_python序列类型种类详解
  3. linux中检测用户信息的命令是,在Linux系统上检查用户所属组
  4. 系统设计说明书案例_VAV系统设计要点与案例分析
  5. 样条曲面_SolidWorks肥皂块曲面建模,你的肥皂掉了
  6. Atitit 切入一个领域的方法总结 attilax这里,机器学习为例子
  7. 电大计算机网络模拟题及答案,最新国家开放大学电大本科《计算机网络》期末题库及答案...
  8. 零基础如何入门数据分析师?
  9. 第五部分 家庭创业奔小康6.开家畅销书专送店
  10. ACdream - 1073 雷霆战机
  11. js 根据时区转换日期格式
  12. Spring包下Pageable的使用 2
  13. VMware Explore 大会解读:VMware 要做多云时代核心技术玩家
  14. 你长痘吗?留下痘印吗?民间秘方
  15. 四川救援直升机飞机失事原因详解
  16. 【Oracle】sql语句查询
  17. DevExpress 20.2.3有源码吗?一名鱼友刚刚问我的
  18. 原码、反码、补码、移码的概念及转换
  19. 坚忍型性格分析,坚忍型人格的职业发展
  20. 送外卖优先级_关于外卖平台排名规则|这些“加分因素”你知道吗?

热门文章

  1. H5页面唤醒支付宝 APP指定页面
  2. UI设计中一致性为什么这么重要
  3. 《From Captions to Visual Concepts and Back》阅读笔记
  4. 倍福plc的型号_EL9186——plc倍福模块+EL9100型号EL9010
  5. 实战Nagios NSCA方式监控Linux系统资源使用情况 -- Nagios配置篇 -- Nagios Server端
  6. 父子进程终止顺序与僵死进程
  7. 微信小程序 | 一键生成万圣节头像框工具
  8. 项目成本管理:项目成本控制
  9. 详解Po.et 技术栈
  10. 女生适合学UI设计吗