应用ArcGIS Server JavaScript API实现地图卷帘效果实现
var maskDynamicMapServiceLayer = null;
var maskDynamicMapServiceLayerDiv = null;
var pointNumb = 0;
var alignType = "";
var mapMouseDownEvent= null;
var mapMouseMoveEvent = null;
var mapMouseUpEvent = null;
var mapDiv = null;
function initOverlayerContrast(layer)
{
maskDynamicMapServiceLayer = layer;
maskDynamicMapServiceLayerDiv = document.getElementById("map_" + maskDynamicMapServiceLayer.id);
mapDiv = document.getElementById("map");
mapDiv.onmousedown = startDragSwipe;
map.disablePan();
} function destroyOverlayerContrast()
{
mapDiv.onmousedown = null;
mapDiv = null;
maskDynamicMapServiceLayer = null;
maskDynamicMapServiceLayerDiv = null;
map.enablePan();
} function startDragSwipe(e) {
pointNumb = 1;
var eventObj = window.event || e;
var x = eventObj.clientX;
var y = eventObj.clientY;
maskDynamicMapServiceLayerDiv = document.getElementById("map_" + maskDynamicMapServiceLayer.id);
mapDiv.onmousemove = moveDragSwipe;
mapDiv.onmouseup = stopDragSwipe;
//
var leftOffset = x;
var topOffset = y;
var rightOffset = document.body.clientWidth - x;
var bottomOffset = document.body.clientHeight - y;
var minOffset = 0;
if (leftOffset < rightOffset) {
minOffset = leftOffset;
alignType = "left";
} else {
minOffset = rightOffset;
alignType = "right";
}
if (topOffset < minOffset) {
minOffset = topOffset;
alignType = "top";
}
if (bottomOffset < minOffset) {
minOffset = bottomOffset;
alignType = "bottom";
}
//
var clip = "rect(auto, auto, auto," + x + "px)";
if (alignType == "right") {
clip = "rect(auto, " + x + "px, auto, auto)";
} else if (alignType == "top") {
clip = "rect(" + y + "px, auto, auto, auto)";
} else if (alignType == "bottom") {
clip = "rect(auto, auto, " + y + "px, auto)";
}
maskDynamicMapServiceLayerDiv.style.clip = clip;
} function moveDragSwipe(e) {
var eventObj = window.event || e;
var x = eventObj.clientX;
var y = eventObj.clientY;
//
if (maskDynamicMapServiceLayerDiv && pointNumb == 1) {
var clip = "rect(auto, auto, auto," + x + "px)";
if (alignType == "right") {
clip = "rect(auto, " + x + "px, auto, auto)";
} else if (alignType == "top") {
clip = "rect(" + y + "px, auto, auto, auto)";
} else if (alignType == "bottom") {
clip = "rect(auto, auto, " + y + "px, auto)";
}
maskDynamicMapServiceLayerDiv.style.clip = clip;
}
} //
function stopDragSwipe(evt) {
if (maskDynamicMapServiceLayerDiv)
{
maskDynamicMapServiceLayerDiv.style.clip = "rect(auto, auto, auto, auto)";
}
pointNumb = 0;
mapDiv.onmousemove = null;
mapDiv.onmouseup = null;
}
应用ArcGIS Server JavaScript API实现地图卷帘效果实现的更多相关文章
- ArcGIS Server JavaScript API 各命名空间的含义【转】
1.esri 命名空间 所有的对象都是在 esri 命名空间下的,esri 有自己的属性和方法. 如 esri.version 返回当前 JavaScript API 的版本号.e ...
- ArcGIS Server JavaScript API中ESRI字体下载
---------------------------------------------------------------------------------- import sys, os im ...
- Arcgis for Javascript API下类似于百度搜索A、B、C、D marker的实现方式
原文:Arcgis for Javascript API下类似于百度搜索A.B.C.D marker的实现方式 多说无益,首先贴两张图让大家看看具体的效果: 图1.百度地图搜索结果 图2.Arcgis ...
- ArcGIS For JavaScript API 默认参数
“esri.config”的是在1.3版中的的“esriConfig”的替代品.如果您使用的是1.2或更低的版本,您应该参阅默认API v1.2和更低的配置.对于版本1.3或更高版本,您可以使用“es ...
- 关于ArcGis for javascript整合百度地图 天地图 高德地图进行搜索
1.ArcGis for javascript整合百度地图搜索 1.1.首先引入百度地图的api <!-- 引入百度地图API --> <script type="text ...
- 利用Arcgis for javascript API绘制GeoJSON并同时弹出多个Popup
1.引言 由于Arcgis for javascript API不可以绘制Geojson,并且提供的Popup一般只可以弹出一个,在很多专题图制作中,会遇到不少的麻烦.因此本文结合了两个现有的Arcg ...
- arcgis for JavaScript API 4.5与4.3的区别
arcgis 4.5与4.3区别: 鉴于本人使用4.3时间比较久,而arcgis for JavaScript API于9月28日推出了4.5版本,但是直接更换4.5的init.js会出现意想不到的错 ...
- ArcGIS API for JavaScript开发笔记(一)——ArcGIS for Javascript API 3.14本地部署
堪称史上最详细的< ArcGIS forJavascript API 3.14本地部署>文档,有图有真相~~~ ---------环境:Windows server 2012R2,IIS ...
- C# 调用ArcGIS server admin api
一.AGS server admin api 介绍 1.1什么是admin api AGS Server Admin api 官方的称呼是 AGS Server administrator api, ...
随机推荐
- Hadoop2.2.0安装笔记
最近想学习hadoop,于是网上找了些教程学习,几经周折,总算安装成功了! 先讲下环境,就2台机器...都是vmware虚拟机,操作系统centos, jdk版本 1.8.0 hadoop版本 2.2 ...
- innodb 源码分析 --锁
innodb引擎中的锁分两种 1)针对数据结构, 如链表 互斥锁 读写锁 http://mysqllover.com/?p=425 http://www.cnblogs.com/justfortast ...
- 【bzoj1855】 [Scoi2010]股票交易 单调队列优化DP
上一篇blog已经讲了单调队列与单调栈的用法,本篇将讲述如何借助单调队列优化dp. 我先丢一道题:bzoj1855 此题不难想出O(n^4)做法,我们用f[i][j]表示第i天手中持有j只股票时,所赚 ...
- windows7下部署tomcat
需要准备的软件: 1.JDK 安装程序 2.Tomcat 安装程序 JDK安装步骤: 安装方式:使用安装程序进行安装.使用JDK文件夹,免安装,以下步骤使用的是文件夹免安装,只需配置环境变量 配置环境 ...
- Ubuntu18.04 Redis主从复制
1.下载安装redis http://download.redis.io/releases/ 2.建立一个主7060和一个从7061文件 3.在两个文件夹中建立用于存放数据得db文件和存日志得log文 ...
- 转载 linux umount 时出现device is busy 的处理方法--fuser
http://www.cnblogs.com/spicy/p/6894333.html (原文链接) 当任何目录有 mount, 然后有程序使用/挂在那个目录上的话, 就没有办法 umount 掉, ...
- JAVA使用Gecco爬虫 抓取网页内容(附Demo)
JAVA 爬虫工具有挺多的,但是Gecco是一个挺轻量方便的工具. 先上项目结构图. 这是一个 JAVASE的 MAVEN 项目,要添加包依赖,其他就四个文件.log4j.properties 加上三 ...
- elasticsearch启动错误解决
es启动默认不能使用root用户,所以需要新创建一个用户来启动. 启动时可能出现的问题: [1]: max file descriptors [4096] for elasticsearch proc ...
- 常用工具说明--Java的常用工具
1.Eclipse.IntelliJ IDEA Eclipse是IDE领域的瑞士军刀,有着大量定制的接口和无数的插件.它无处不在,后面本文将推荐的其他所有工具都提供Eclipse插件. Eclipse ...
- 消息管理-activemq
1.ConnectionFactory("tcp://192.168.1.103:61616/"); 本机地址192.168.1.103 也 可以是localhost 消息的生产者 ...