《JavaScript构建Web和ArcGIS Server应用实战》——2.6 地图事件

2.6 地图事件

在编程世界里,事件是发生在应用程序中的动作。通常,这些事件通过终端用户触发,包括鼠标单击、鼠标拖拽和键盘动作,但是它还包括数据的发送和接收、组件修改和其他操作。

ArcGIS API for JavaScript是一个异步的API,遵循应用程序注册(发布)事件的监听(用户)中的发布/订阅模式。图2-15说明了该过程。监听器负责监控应用程序中的事件,然后触发一个处理函数来响应事件。多个事件可以注册到同一个监听器中。dojo中的on()方法就是这样的一个事件处理程序。

你可能还记得,ArcGIS ServerJavaScriptAPI建立在Dojo之上。使用Dojo,事件通过dojo的on()方法注册给处理程序。该方法接收三个参数,仔细观察图2-16,你会对事件注册有更好的理解。

我们调用带参数的on()方法,参数包括map、click和displayCoordinates。前面两个参数代表对象和我们需要注册的事件。在这种情况下,意味着我们正在为Map对象注册click事件。在地图范围内,每当用户单击鼠标就会触发此事件。最后一个参数displayCoordinates代表事件的监听器。因此,每当Map对象的click事件触发时,将会触发displayCoordinates函数,它将运行并报告地图当前范围。虽然事件和注册的处理取决于环境的变化,但是注册的方法是一样的。

每次事件发生时,Event对象将产生。该Event对象包括额外的事件信息,比如鼠标按钮被单击或者键盘某个按键被按下。这个对象会自动传递到事件处理程序中检查。如下列代码所示,你可以看到Event对象作为一个参数传递到了处理程序中。这是一个动态对象,它的属性也会根据被触发的事件类型而发生变化。

function addPoint(evt) {
    alert(evt.mapPoint.x, evt.mapPoint.y);
}

API中不同对象有着不同的事件。但是,你要牢记不要用监听器来注册每一个事件。只有那些应用程序中需要的事件才需要注册。当一个事件没有使用监听器进行注册时,该事件会被忽略。

Map对象包含多种不同响应事件,包括各种鼠标事件、范围改变事件、底图改变事件、键盘事件、图层事件、平移和缩放事件以及更多其他事件。应用程序中可以响应任意这些事件。在接下来的章节中,我们将学习其他对象可用的事件。

在不需要的时候,从处理函数中断开事件是一个好的编程习惯。这通常在当用户从页面导航离开或者关闭浏览器窗口时完成。下列代码显示了如何简单地通过调用remove()方法完成移除单击事件。

var mapClickEvent = on(myMap, "click", displayCoordinates);
mapClickEvent.remove();
时间: 2024-12-31 18:58:24

《JavaScript构建Web和ArcGIS Server应用实战》——2.6 地图事件的相关文章

《JavaScript构建Web和ArcGIS Server应用实战》——第1章 HTML、CSS和JavaScript简介

第1章 HTML.CSS和JavaScript简介 JavaScript构建Web和ArcGIS Server应用实战 在开始使用ArcGIS API for JavaScript进行GIS应用程序开发之前,你需要理解一些基本概念.对于那些已经熟悉HTML.JavaScript和CSS的读者来说,就请跳过这一章直接到下一章进行学习.但是,如果你刚开始了解这些概念,请继续阅读.我们将从基础概念开始介绍这些主题,这足以让你入门.关于这些主题的更高层次的学习,有很多学习资源提供,包括书籍和在线教程.你

《JavaScript构建Web和ArcGIS Server应用实战》—— 导读

前言 ArcGIS Server是用于开发基于Web的GIS应用程序的主要平台.我们可以使用多种编程语言去开发基于 ArcGIS Server 的应用程序,包括 JavaScript.Flex 和 Silverlight.JavaScript已经成为在这个平台上开发应用程序的首选语言,因为它可以用在Web和移动应用程序中,并且在浏览器上不需要为应用程序安装插件.Flex和Silverlight两者都不太适合作为移动终端程序开发的语言,并且当应用程序运行在浏览器中时都需要用到插件. 本书将介绍如何

《JavaScript构建Web和ArcGIS Server应用实战》——2.5 使用地图服务图层

2.5 使用地图服务图层 一幅没有数据图层的地图就像一个画家的空白画板一样.添加到地图中的数据图层让其有意义并为分析奠定了基础.提供数据图层添加到地图中主要有两种类型的地图服务:动态地图服务图层和切片地图服务图层. 动态地图服务图层在运行时创建地图图片并引用地图服务,然后返回图片到应用程序中.这种类型的地图服务或许由一个或多个图层信息构成.图2-4所示为Demograhpics地图服务,它由九个不同的图层构成,分别从不同地理层次代表Demographic信息. 客户端应用程序显示将花费更多时间,

《JavaScript构建Web和ArcGIS Server应用实战》——第2章 创建地图和添加图层2.1 简介

第2章 创建地图和添加图层 通过前一章的学习,我们已经掌握了关于HTML.CSS和JavaScript的一些基础知识.接下来我们将正式开始学习如何去创建一些很好的GIS Web应用程序.在本章中,我们将会为大家介绍关于如何创建地图并在地图上添加图层形式信息的一些基础概念. 本章中将包含如下主题. ArcGIS API for JavaScript 沙盒. 使用ArcGIS API for JavaScript创建应用程序的基本步骤. 更多关于地图的介绍. 使用地图服务图层. 切片地图服务图层.

《JavaScript构建Web和ArcGIS Server应用实战》——2.4 更多关于地图的介绍

2.4 更多关于地图的介绍 在前面的内容中,我们已经介绍了使用ArcGIS API for JavaScript创建每一个应用程序所需要遵循的步骤.你已经学会了如何创建一个初始化的JavaScript函数.初始化脚本的目的是为了创建地图.添加图层和执行任何让应用程序启动时必需的安装程序.在本节中创建一个地图是你需要完成的一个任务,我们还将更加详细地讲述已创建Map类实例中的各种选项. 在面向对象编程语言中,创建一个类的实例常常是通过构造函数来完成的.构造函数是一个函数,用于创建或初始化一个新的对

《JavaScript构建Web和ArcGIS Server应用实战》——2.3 使用ArcGIS API for JavaScript创建应用程序的基本步骤

2.3 使用ArcGIS API for JavaScript创建应用程序的基本步骤 使用ArcGIS API for JavaScript创建任何GIS地图应用程序,都需要遵循一些步骤.假如想让地图成为应用程序的一部分,那么就需要你按照这些步骤来执行.在阅读本书时,我很难想象你不按照这些步骤来做会遇到怎样糟糕的情况.简而言之,你需要遵循以下步骤. 1.创建页面HTML代码. 2.引用ArcGIS API for JavaScript和样式表. 3.加载模块. 4.确保DOM可用. 5.创建地图

《JavaScript构建Web和ArcGIS Server应用实战》——1.3 CSS基本原则

1.3 CSS基本原则 级联样式表(CSS)是描述网页中HTML元素如何显示的一门语言.例如,CSS通常用来定义一个或多个页面中的常见的样式元素,比如字体.背景颜色.字体大小.链接颜色和其他多种与网页视觉设计相关的方面.让我们看下面的代码片段. <style> html, body { height: 100%; width: 100%; margin: 0; padding: 0; } #map{ padding:0; border:solid 2px #94C7BA; margin:5px

《JavaScript构建Web和ArcGIS Server应用实战》——2.7 总结

2.7 总结 我们已经在本章中涵盖了很多基础内容.所有使用ArcGIS API for JavaScript创建的应用程序需要一组特定的步骤,我们称之为样板代码,它包括定义引用API和样式表.加载模块.创建初始化函数和一些其他步骤.在初始化函数中,将会创建一个地图.添加各种图层和在使用应用程序之前需要执行其他的安装操作.在本章中,我们学会了如何执行这些任务. 此外,我们学习了多种可以添加到地图上的图层,包括切片地图服务图层和动态地图服务图层.切片地图服务图层是预先创建的并且缓存在服务器上,因此常

《JavaScript构建Web和ArcGIS Server应用实战》——1.5 总结

1.5 总结 在我们开始详细讨论ArcGIS API for JavaScript之前,你需要理解一些基本的HTML.CSS和JavaScript概念.本章目的就在于此,但你仍需要继续学习与这些主题相关的其他内容.到目前为止,你尚需掌握的内容还有很多. 应用程序展示是通过开发代码中的HTML和CSS来定义的,而应用程序中的功能是通过JavaScript进行控制的.这些都是非常不同的技能集合,很多人只擅长其中的一个,对于其他的就未必擅长了.大多数应用程序开发人员将重点放在通过JavaScript开