应用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, ...
随机推荐
- 利用Django做一个简单的分页页面
views代码: from django.shortcuts import render from django.conf import settings from booktest.models i ...
- 【learning】 单调队列与单调栈用法详解
1.单调栈 单调栈是指一个栈内部的元素具有严格单调性的一种数据结构,分为单调递增栈和单调递减栈. 其具有以下两个性质: 1,满足栈底到栈顶的元素具有严格单调性. 2,满足栈的先进后出特性,越靠近栈顶的 ...
- CPM(Cluster Percolation method)派系过滤算法
一.概念 (1)完全子图/全耦合网络/k-派系:所有节点全部两两相连 图1 这些全耦合网络也成为派系,k-派系表示该全耦合网络的节点数目为k 1)k-派系相邻:两个不同的k-派系共享k-1个节点,认为 ...
- QuantLib 金融计算——高级话题之模拟跳扩散过程
目录 QuantLib 金融计算--高级话题之模拟跳扩散过程 跳扩散过程 模拟算法 面临的问题 "脏"的方法 "干净"的方法 实现 示例 参考文献 如果未做特别 ...
- json,DataTable,model
1.DataTable转json public class DataTableConvertJson { #region dataTable转换成Json格式 /// <summary> ...
- Mac下使用zsh不执行/etc/profile文件
Mac下使用了zsh会不执行/etc/profile文件,当然,如果用原始的是会执行. 转而执行的是这两个文件,每次登陆都会执行: ~/.zshrc与/etc/zshenv与/etc/zshrc 所以 ...
- [转]你真的了解 console 吗
原文:https://segmentfault.com/a/1190000000481884 对于前端开发者来说,在开发过程中需要监控某些表达式或变量的值的时候,用 debugger 会显得过于笨重, ...
- Eclipse及IDEA插件开发
https://github.com/eclipse/eclipse.jdt.ui http://www.eclipse.org/jdt/ui/ https://www.cnblogs.com/xin ...
- django中有外键关系两张表的相互查找方法
两张通过外键联系的表,如何在一张表上根据另一张表上的属性查找满足条件的对象集? 1 平常查找表中数据的条件是python中已有的数据类型,通过名字可以直接查找.如果条件是表中外键列所对应表的某一列, ...
- 用css实现在横线中间插入文字
在一些登录或者注册界面中常常可看到,一个大框框上面的横线中有插入文字,大概示意图如下: 这种现象其实是相对位置作用的结果,可以通过相对定位,是某元素恰好出现在div的边框上. position: re ...