应用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, ...
随机推荐
- 【13】JMicro微服务-ID生成与Redis
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到12小节 1. 微服务中ID地位 如果说前面小节的功能点是微服务的大脑,那么全局唯一ID则是微服务 ...
- 微信小程序开发笔记2,底部导航栏tablebar
底部导航(要在app.js里面配置,也就是把导航的代码写到app.js) 官方文档说最少2个导航最多5个 , "tabBar": { "color": &quo ...
- POJ1038 Bugs Integrated, Inc.
题目来源:http://poj.org/problem?id=1038 题目大意: 有一家芯片公司要在一块N*M的板子上嵌入芯片,其中1<=N<=150, 1<=M<=10,但 ...
- (转)MySQL 5.6 OOM 问题解决分享
本文来自:杨德华的原创分享 | MySQL 5.6 OOM 问题解决分享 原文:http://www.cnblogs.com/zhoujinyi/p/5763112.html 延伸阅读:Linux的内 ...
- Failed to create prime the NuGet cache
在centos 7上使用dotnet core时: dotnet core 安装环境在root下完成,并成功运行“hello world”程序.切换到其他账户使用dotnet命令时,报“Failed ...
- [Python] 记录
错误处理 virtualenv 报错: 在中文文件夹中 unicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 17 ...
- 我与GitHub的第一次——自制音乐文件修改器
背景: 随机播放,所有的音乐播放器里面现在几乎都有这个功能吧.但是有没有发现,自己的播放器在选择随机播放的时候,经常会听到重复顺序的歌曲呢?反正我是有这样的感觉,无耐自己平时下的歌曲都是“歌手名—歌曲 ...
- CentOS7.4安装Java8
官网下载Jdk8Linux64位版本: 使用MobaXterm工具连接远程Linux系统: 上传刚才下载好的文件到远程系统下 /usr/local/ 文件夹: 先进入压缩包所在目录再输入命令解压jdk ...
- Android 使用zxing生成二维码的方法
public void createQRImage(String url) { try { // 判断URL合法性 if (url == null || "".equals(url ...
- tomcat启动(四)Catalina分析-server的init()方法
上一回load()方法解析讲到xml解析完成. load()内部接下来会获取server getServer().setCatalina(this); 这个server从createStartDige ...