ArcGIS JavaScript API异常之onExtentChange事件覆盖onClick事件
利用Esri官方提供的聚合类进行聚合,由于数据较多,为了加快速度,在聚合之前对当期范围进行判断,如果不在当前视图范围的,就不聚合了。
所以,由于Esri官方的类是监听了zoomEnd事件,如下代码
this._zoomEnd = connect.connect(map, "onZoomEnd", this, function () {
                // update resolution
                if (map.spatialReference.isWebMercator()) {
                    this._clusterResolution = map.extent.getWidth() / map.width; // probably a bad default...
                }
                else {
                    //WGS 84坐标,转换为web Mercator
                    var latlng1 = new Point(map.extent.xmax, map.extent.ymax, map.spatialReference); //右上角
                    var latlng2 = new Point(map.extent.xmin, map.extent.ymin, map.spatialReference); //左下角
                    var webMercator1 = webMercatorUtils.geographicToWebMercator(latlng1);
                    var webMercator2 = webMercatorUtils.geographicToWebMercator(latlng2);
                    this._clusterResolution = (webMercator1.x - webMercator2.x) / map.width;
                }
                this.clear();
                this._clusterGraphics();
            });
所以,当限定视图范围聚合时,如果只平移,不触发onZoomEnd事件,新视图范围内心增加的地图区域即不进行聚合计算,也就没有聚合点。
为了解决上述问题,改为监听onExtentChange事件,即可。
this._extentChange = connect.connect(map, "onExtentChange", this, function ()
{
//同上
}
为了验证,运行之前就加了断点进行调试。调试时发现,onExtentChange事件覆盖了聚合图层的onClick事件(项目中该事件中弹出该点的Modal窗口,包含一些感兴趣的信息以及需要客户填写的信息),
导致onClick是一些操作被忽视,Modal窗口无法弹出。
Google了好久,发现,调试模式下onClick事件被onExtentChange事件覆盖,如果不调试,就正常了!!!!!
ArcGIS JavaScript API异常之onExtentChange事件覆盖onClick事件的更多相关文章
- 如何正确响应ArcGIS JavaScript API中图形的鼠标事件
		
在使用ArcGIS JavaScript API编写程序的时候,程序员往往需要完成这样一个功能:点击地图上的图形,自动进行专题GIS数据查询,当在地图非图形区域上点击时,自动进行底图兴趣点查询. 由于 ...
 - Arcgis Javascript API 开发笔记
		
JS API3.4的要求 à(1) IE9或以上版本 否则dijit1.8.3不匹配 1.如何发布ArcgisJavascript API应用 0.准备工作: (1).有web应用: (2).有js ...
 - 使用ArcGIS JavaScript API 3.18 加载天地图
		
对于中国开发者在创建GIS应用的时候,往往比较头疼的是底图资源的缺乏.其实国家测绘地信局就提供一个很好的免费资源:天地图.使用ArcGIS API的开发人员可以直接利用该资源作为地图应用的底图. Ar ...
 - ArcGIS JavaScript API本地部署离线开发环境[转]
		
原文地址:http://www.cnblogs.com/brawei/archive/2012/12/28/2837660.html 1 获取ArcGIS JavaScript API API的下载地 ...
 - Ionic集成ArcGIS JavaScript API.md
		
1. Ionic同原生ArcGIS JavaScript API结合 1.1. 安装esri-loader 在工程目录下命令行安装: npm install angular2-esri-loader ...
 - ArcGIS JavaScript API 4.x中热度图渲染的使用注意事项
		
要使用ArcGIS JavaScript API 4.x的热度图渲染器来渲染要素图层,需要注意几点前提条件: 1.需要使用ArcGIS Server 10.6.1或更高版本发布GIS服务. 2.只支持 ...
 - ArcGIS Javascript API 加载高德在线地图扩展
		
利用ArcGIS JavaScript API加载高德在线地图的扩展 /** * Created by WanderGIS on 2015/7/15. */ define(["dojo/_b ...
 - Ionic2集成ArcGIS JavaScript API.md
		
1. Ionic同原生ArcGIS JavaScript API结合 1.1. 安装esri-loader 在工程目录下命令行安装: npm install angular2-esri-loader ...
 - Arcgis javascript api 动态图层自图层可见性设置
		
Arcgis javascript api 动态图层自图层可见性设置 子图层管理 rest服务 sublayers sublayer ArcGISDynamicMapServiceLayer 本文主要 ...
 
随机推荐
- socket编程学习
			
socket: 也称作套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求. 常用的套接字API函数: 1.socket(): 函数原型为:int socket(int domain, int ...
 - 如何通过java代码对kylin进行cube build
			
通常是用于增量 代码如下: package com.dlht.kylinDemo; import java.io.BufferedReader; import java.io.FileNotFound ...
 - Linux上部署JProbe
			
1.在本机PC上安装JProbe: JProbeforWindowsEXEFormat_810
 - java 线程演示
			
package unit8; public class Mainthread { public static void main(String[] args) { Thread t = new Thr ...
 - Java 多字符分割字符串
			
有时候要对不规整的数据进行分割处理,数据中可能会出现一个或多个不同的分割符,这时需要用到 String.split() 方法来进行分割,代码如下: String string = "张三:李 ...
 - 浩瀚PDA无线POS盘点机(安装盘点程序):盘点结果实时上传到PC电脑端
			
手持终端机的盘点部分改进, 1可以通过wifi联网到后台, 2也可以暂存在手持终端机上,盘点完后一次性上传到电脑上.
 - js-新兴的API,最佳实践,离线应用于客户端存储
			
离线应用于客户端存储: 1.离线检测:online以及offline事件,都是在window对象上触发 navigator.online为true的时候是表示设备能够上网 2.使用一个描述文件(man ...
 - java中 ==与equals 有什么区别?
			
1.==既可以比较基本类型变量,又可比较引用类型变量,而equals只能比较引用类型变量: 2.equals方法支持重写,如果未重写equals方法,则比较引用变量时与==都是比较变量所指向的对象地址 ...
 - COGS738 [网络流24题] 数字梯形(最小费用最大流)
			
题目这么说: 给定一个由n 行数字组成的数字梯形如下图所示.梯形的第一行有m 个数字.从梯形的顶部的m 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径.规则1:从梯形的 ...
 - 数据仓库原理<2>:数据仓库系统的体系结构
			
1. 引言 本篇主要讲述数据仓库系统的体系结构与组成要素.数据集市与数据仓库之间的关系.元数据的定义与作用. 在上一篇,笔者介绍了数据仓库的定义: "数据仓库是一个面向主题的.集成的.不可更 ...