1.前言
在GIS中元素一般分为点元素,线元素,面元素以及symbol元素(特殊的点元素)等。与此对应,图层可以分为点图层,线图层,面图层以及标注图层等。从第9章到第10章,我给大家讲解了什么是矢量数据、矢量数据的来源、矢量数据的构造、以及矢量数据中的地理坐标与屏幕坐标之间的转换。在了解了这些概念和算法以及流程后,这一章我们将开始讲解设计出一个矢量图层前的最后一步,设计WebGIS中的要素(Feature)。
2.要素设计的思路
2.1 需求
要素应该具有如下功能:
(1)能够绘制出矢量数据的Shape。
(2)能够存储矢量数据的atrributes。
(3)可以响应鼠标事件。
(4)可以响应自定义事件,如自定义的一系列地图事件。
(5)能够添加入Canvas组成一个矢量图层。
(6)要素是有很多种类的,比如点、线、面等。
2.2 基本分析
(1)在前面我们已经阐述了要素的本质,即UIComponent。因为UIComponent是前端语言中已经封装好了的类,我们只用继承其即可,如此我们便同时能实现上面所说的第三个需求以及第五个需求。
(2) 需求中要求要素中能够绘制出矢量数据的Shape。所以得定义类似于Draw这样的功能函数,以解决第一个需求。
(3)要素中还需要有个一变量存放attributes,即FeatureInfo以解决第二个需求。
(4)设计的类中还要定义一个监听事件的函数和一个移除监听事件的函数,即:addMapEventListener和removeMapEventListener,以解决第四个需求。
2.3 扩展分析