今天在用Dojo的toolkit(Dijits)创建ArcGIS的地图对象时,因为有多个地图实例,而这些地图实例都被Dojo的WidgetRegister注册表管理着,而我的HTML代码中,只使用了一个Div,也就是它的ID是唯一的。这时候,如果第一次打开地图实例,是可以正常渲染的。但是打开第二个,第三个就不行了。因为ID已经被注册过了。
怎么解决呢?这得看你的需求。
1. 如果你的地图实例是要同时打开多个,那么就得把每个地图实例的DIV ID命名做到唯一,例如添加名空间,或者其他手段。
2. 如果你的地图实例每次仅打开一个,但是有很多个不同的实例。这时候可以保留一个DIV一个ID,然后通过JS代码里判断Dojo Widgets里的注册表是否已经包含了该ID,如果有,就删除掉。这样就能解决这个问题了。
对于我的需求可以参看下图:我点击底部列表中某条记录的右边按钮,就弹出一个窗口,该窗口有一个地图实例。
具体看代码:
dijit.registry.forEach(function(w){
if (w.get("id") == map_id+"_infowindow"){
w.destroy();
}
if (w.get("id") == map_id+"_zoom_slider"){
w.destroy();
}
});
//----------------在地图实例化之前进行判断------------------------------
map = new esri.Map(map_id,{extent:initExtent});
主要是利用了 Widget 类的 getter 方法来获取ID值进行判断。
- 大小: 212.6 KB
分享到:
相关推荐
在ArcGIS API for JavaScript开发中,DOJO常被用来增强用户界面、管理异步操作和构建复杂的应用结构。教程会指导你如何有效地整合DOJO与ArcGIS API,例如使用DOJO的Data Stores来管理地理数据,或者利用DOJO的Widget...
在压缩包中的`grammarApp`可能是一个完整的示例应用,包含了创建自定义Dojo Widget的相关代码。这个应用可能演示了如何结合Dojo的Widget机制和其他功能(如数据存储、异步请求等)来构建一个具有特定功能的应用。 ...
Dojo Widget可以通过Canvas API创建动态图表,例如实时更新的数据曲线图。开发者可以通过JavaScript操作Canvas来动态绘制图表,同时利用Dojo的事件处理机制响应用户交互。 **2. 实现离线数据存储** 通过HTML5的...
- **SandBox**:Dojo的SandBox机制创建了一个隔离的执行环境,使得Widget只能在其指定的环境中运行,限制了它们对外部环境的直接访问,从而增加了安全性。 - **dojox.secure构建小部件**:dojox是Dojo的扩展库,...
本文主要探讨的是在Dojo框架下进行Widget标签开发的技术细节,旨在帮助开发者更好地理解和利用Dojo构建可重用、模块化的Web组件。 首先,我们要了解什么是Widget。在Dojo中,Widget是UI组件的基础,它封装了HTML...
在ArcGIS平台中,Dojo是一个强大的JavaScript库,它为Web开发提供了丰富的功能,包括UI组件、数据管理、异步处理等。ArcGIS Dojo Grid是Dojo库的一部分,专门用于展示和操作表格数据,特别适合与地理信息系统(GIS)...
**Widget的概述** Widget,又称为小工具,是一种在各种人机交互界面上提供便捷功能的应用。它结合了图像和程序,能够在手机、网页、电脑桌面等不同平台上运行,为用户提供个性化信息和服务。Widget的主要目的是简化...
ArcGIS for JS离线部署及Dojo框架入门 ArcGIS for JS是一个功能强大且流行的WebGIS开发框架,能够帮助开发者快速构建交互式的WebGIS应用程序。在这里,我们将讨论如何对ArcGIS for JS API进行离线部署,并介绍Dojo...
2. **dojo/_base**:这是Dojo的基础模块,包含了Dojo的基本功能,如对象创建、事件处理、DOM操作等。例如,`dojo/query`用于选择DOM元素,`dojo/on`用于监听事件。 3. **dojo/ready**:这个模块用于确保DOM加载完成...
<<Dojo的高级运用:Widget的制作>> 和 使用Dojo和JSON构建Ajax应用>> 中涉及到的源代码 博文链接:https://tailsherry.iteye.com/blog/102907
每个 Dojo widget 都有一系列生命周期方法,如 `postCreate`、`startup` 和 `destroy`,它们在 widget 的创建、初始化、显示和销毁过程中被调用。理解这些方法有助于正确地管理组件的状态和资源。 ### 5. 测试 ...
【标题】"JSAPI Dojo -> ArcGIS Server (SDE) -> InsertPolygon" 涉及的是使用JavaScript API for ArcGIS (Dojo) 与ArcGIS Server(SDE)进行交互,实现插入多边形图元的功能。这个主题涵盖了Web GIS开发、地理空间...
### Dojo框架中的`dojo.byId()`方法:深入解析与应用 在现代Web开发中,DOM(Document Object Model)操作是构建动态网页的关键技术之一。Dojo框架,作为一款开源的JavaScript库,为开发者提供了丰富的工具集,使得...
Dojo 提供了 dojo.xhr 对象,用于简化AJAX请求。它支持GET、POST等多种HTTP方法,并可以处理JSON、XML、HTML等各种数据格式,同时提供了异步处理机制,增强了用户体验。 ### 2. Dojo Toolkit 的核心组件 - **dojo/...
* 然后,创建一个地图对象:var map = new esri.Map("map"); * 接下来,添加一个 ArcGISTiledMapServiceLayer 到地图对象:map.addLayer(tiledMapServiceLayer); * 最后,使用 dojo.addOnLoad 函数来初始化地图对象...
在4.10版本中,Map对象用于定义地图内容,而View对象则负责展示地图并处理用户的交互。通过设置不同的视图类型,如2D的MapView或3D的SceneView,可以实现二维地图和三维场景的切换。 三、图层操作 API提供了多种...
因此,当你在ArcGIS上显示百度地图时,会出现位置偏移的问题。解决这个问题的关键在于进行坐标转换。 步骤1:引入百度地图API 在你的HTML文件中,你需要引入百度地图的JavaScript库。这可以通过在head部分添加如下...
Dojo 是一个功能丰富的 JavaScript 库,它提供了一系列模块化、面向对象的工具,用于构建高性能的 Web 应用程序。在 Dojo 中,模块和包的概念是核心组成部分,它们帮助开发者组织和管理代码,使其更易于维护和重用。...
Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,尤其在构建复杂的、企业级的富互联网应用程序(Rich Internet Applications, RIA)时表现突出。本压缩包"dojostudy"显然是为了帮助用户学习...