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事件覆盖,如果不调试,就正常了!!!!!

时间: 2024-11-10 11:23:30

ArcGIS JavaScript API异常之onExtentChange事件覆盖onClick事件的相关文章

如何正确响应ArcGIS JavaScript API中图形的鼠标事件

在使用ArcGIS JavaScript API编写程序的时候,程序员往往需要完成这样一个功能:点击地图上的图形,自动进行专题GIS数据查询,当在地图非图形区域上点击时,自动进行底图兴趣点查询. 由于专题GIS图形是叠加在底图上的,所以我们在处理地图的鼠标点击事件时,就需要根据实际点击的位置和内容来对不同的数据进行查询. ArcGIS JavaScript API为编程人员分别提供了针对地图对象和图形的两个鼠标点击事件. 下面是示例代码: 1 <!DOCTYPE html> 2 <htm

[转]ArcGIS JavaScript API本地部署离线开发环境

1 获取ArcGIS JavaScript API API的下载地址http://support.esrichina.com.cn/2011/0223/960.html,在下载页面会看到api和sdk的下载链接,api是我们开发需要的库,sdk是说明文档和例子,点击下载api的最新版3.2. 2 本地部署API 打开API包中的arcgis_js_api/library/install.htm安装说明,本文依据此英文说明而来. 解压后在IIS中建立应用程序,如下图.配置好API应用程序后,其路径

ArcGIS Javascript API 加载高德在线地图扩展

利用ArcGIS JavaScript API加载高德在线地图的扩展 /** * Created by WanderGIS on 2015/7/15. */ define(["dojo/_base/declare", "esri/geometry/Extent", "esri/SpatialReference", "esri/geometry/Point", "esri/layers/TileInfo",

ArcGIS JavaScript API本地部署离线开发环境[转]

原文地址:http://www.cnblogs.com/brawei/archive/2012/12/28/2837660.html 1 获取ArcGIS JavaScript API API的下载地址http://support.esrichina.com.cn/2011/0223/960.html,在下载页面会看到api和sdk的下载链接,api是我们开发需要的库,sdk是说明文档和例子,点击下载api的最新版3.2. 2 本地部署API 打开API包中的arcgis_js_api/libr

使用ArcGIS JavaScript API 3.18 加载天地图

对于中国开发者在创建GIS应用的时候,往往比较头疼的是底图资源的缺乏.其实国家测绘地信局就提供一个很好的免费资源:天地图.使用ArcGIS API的开发人员可以直接利用该资源作为地图应用的底图. ArcGIS JavaScript API最近新推出了3.18版本.所以下面示例代码将基于该版本. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf

FK JavaScript之:ArcGIS JavaScript API之地图动画

地图要素动画应用场景:动态显示地图上的要素的属性随着时间的改变而改变,并根据其属性的变化设置其渲染.比如:某水域项目中,随着时间的变化,动态展现水域的清淤进度 本文目的:对ArcGIS JavaScript 官网示例中的代码进行分析注解.下述代码对官网示例进行了部分调整 示例网址1: 示例网址2: 示例中csv文件 以下为代码注释: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&

ArcGIS JavaScript API 3.11本地化安装

1.下载API 美国站点:http://www.esri.com/apps/products/download/index.cfm?fuseaction=download.all#ArcGIS_API_for_JavaScript 中国ESRI网站:http://support.esrichina-bj.cn/support/download/software/ 2.安装 下载完毕后,解压Library:arcgis_js_v311_api.zip和SDK:arcgis_js_v311_sdk.

空间数据可视化:ArcGIS JavaScript API 二、三维数据一体化

  ESRI不愧为GIS业界巨头,从本科起就开始接触ArcGIS系列,桌面端从ArcMap 到 ArcPro,服务端从ArcIMS 到 ArcServer,无不体现了这个了不起的公司在与时俱进.不断创新.现在的一些列产品好多我都没有用过,像 portal,pro,webbuilder.........网络GIS 现在好像是只更新JavaScript了,GIS与计算机的关系,都被ESRI公司的产品体现的淋漓尽致.今天来劲,就看了下新的API,果然是集美貌与才华于一身的API-- 先上个官方的案例,

ArcGIS JavaScript API 实现基本的地图功能

代码如下: <!DOCTYPE html> <html> <head>     <title>创建一幅地图</title>     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">     <meta name="viewport" content="initial-scal