9.4.2 GeoSurfBeans的功能分类
使用GeoSurfBeans控件以及对控件提供的若干对象进行基本的应用开发,主要实现以下几个功能:地图显示,图层加载,图层显示、卸载、符号设置、图层控制等;地图的放大、缩小、漫游等浏览操作;地图图例;地物的选择;地物的几何查询;地物的专题图制作向导;地图的量算和地图的打印等。
1.地图显示模块
提供GeoSurfBeans的核心功能,包括地图显示、图层加载、符号设置、图层显示、卸载。GeoSurfMapBean组件使用说明如下(在组件面板添加组件,就可以在窗口编辑器中使用组件了):
如图9-5所示,在窗体编辑器选择GeoSurfMapBean将其拖曳到容器中,在窗体编辑器中将显示GeoSurfMapBean及其属性编辑栏;
图9-5 GeoSurfMapBean及其属性编辑栏示意图
选择基于GUI的属性编辑项mapDefURL,鼠标单击…按钮,弹出如图9-6所示基于GUI的属性编辑对话框;
图9-6 基于GUI的属性编辑对话框示意图
鼠标单击…按钮,弹出基于GUI的属性编辑对话框,选择要添加的文件;也可直接添加示例代码加载地图定义文件geoSurfMapBean1.setMapDefURL("d:\\working\\UI\\sample1.xml");也可以直接添加如下示例代码加载单个图层geoSurfMapBean1.setLayerURL("Shape:d:\\working\\UI\\ TutorialData\\customers")。
2.可视化操作组件
可视化组件是一类组件,包括基本的地图操作、查询组件等,继承了Tool类的可视化组件,可以像Swing组件一样在JBuilder等IDE中的UI设计器里使用。下面介绍共同的使用方法。注意:可视化操作组件必须通过Beans环境机制与GeoSurfMapBean组件关联,并且作为JButton组件的监听器,实现与用户操作的交互。使用过程如下:
将基本操作组件直接添加到GeoSurfMapBean组件上,并且配置mapBean的属性项,与GeoSurfMapBean关联起来。
将可视化操作组件作为JButton组件监听器与JButton组件关联,在“Content”视窗中按【Source】按钮,编辑JButton组件的属性。
3.基本的地图操作
提供基本的地图操作功能,包括放大、缩小、中心放大、中心缩小、全图显示、漫游,通过属性页设置相应属性。组件添加方法参见“可视化操作组件”一节。放大指用户通过属性项面板设置相应属性,如toolTipText;缩小指用户通过属性项面板设置相应属性,如toolTipText;中心放大指用户通过zoomFactor属性项设置中心放大因子,如2.0;中心缩小指用户通过zoomFactor属性项设置中心缩小因子,如0.2;全图显示指用户通过属性项面板设置相应属性,如toolTipText;漫游指用户通过属性项面板设置相应属性,如toolTipText。
4.查询模块
提供地图数据的查询功能,包括点选择查询、矩形选择查询、多边形选择查询、圆形选择查询。还可以维护查询结果,并且突出显示查询结果(组件添加方法参见“可视化操作组件”一节)。下面分别介绍各个查询方式:
①点选择查询。用户通过属性项面板设置相应属性,如tolerance。运行程序,点击【点查询】菜单,在图形显示窗口中单击鼠标左键,则系统弹出查询到的信息。
②线选择查询。通过属性项面板设置相应属性,如isRelate是否为精查,querygeometry查询结果是否包含几何对象。运行程序,点击【线查询】菜单,在图形显示窗口中单击鼠标左键画线,单击鼠标右键结束,则系统弹出查询信息。
③矩形选择查询。通过属性项面板设置相应属性,如isRelate是否为精查,是否要求全包含isInclude运行程序,点击【矩形查询】菜单,在图形显示窗口中拉框,则系统弹出查询信息。
④多边形选择查询。通过属性项面板设置相应属性,如toolTipText。运行程序,点击【多边形查询】菜单,在图形显示窗口中单击鼠标左键画线,单击鼠标右键结束,则系统弹出查询信息。
⑤圆形选择查询。通过属性项面板设置相应属性,如isRelate是否为精查。运行程序,点击【圆查询】菜单,在图形显示窗口中画圆,则系统弹出查询信息。
5.打印输出模块
提供指定区域内地图和相应图例的打印,可预览打印输出的图形。点击工具条上的【打印】按钮,显示打印组件。点击【页面设置】按钮,显示打印设置。点击【打印】按钮,设置参数打印。
6.量算模块
目前仅提供折线量算功能。
7.图层控制模块
模块提供对地图图层的控制,包括图层添加、删除,图层属性更改,专题图层添加、删除等功能。包括LayerControllToolBean组件,提供图层控制功能,LayerIndexEditor类提供获得地图定义文件图层的URL基于GUI的属性编辑器的功能。
LayerControllToolBean组件可以包含地图图例(Legend),可以由图例组成。为了和地图上代表的相应内容随时保持一致,LayerControllToolBean可以对图例进行控制。LayerControllToolBean组件的格式由LayerControllBeanFormat控制。
8.图例模块
图例组件(LegendBean)是管理图例单元(Legend)的组件,一个图例组件(LegendBean)里拥有一个图例容纳器,这个图例容纳器里容纳多个图例单元。图例组件的格式由LegendBeanFormat控制。
9.专题图模块
专题图模块提供专题图管理及显示功能。包括AddThemeToolBean组件,提供专题图制作功能(创建、增加、删除、打开、关闭)。AddThemeWizard类提供制作专题图向导页面,如DefaultSeletThemePattern(选择专题图样式向导页面),DefaultSelectThemeData(选择专题图图层向导页面),DefaultSelectThemeAttribute(选择专题图制图属性项向导页面),DefaultSetThemeProperties(设置专题图参数向导页面)。点击工具条上的【专题图】按钮,弹出如图9-7所示专题图向导对话框。
选择生成专题图的图层,点击【下一步】按钮选择专题图的显示比例尺参数,输入专题图名称,点击【下一步】按钮;选择相应的制图属性项并设置相应的属性值,点击【下一步】按钮;选择相应的制图参数,点击【下一步】按钮,可以看到生成的专题图的效果,如图9-8所示。
10.Tracker组件
Tracker组件系列中Tracker组件主要处理协助用户创建特定的Geometry和在屏幕上表示,管理用户界面的表现行为,如画一根折线还是一个圆,如何绘制,使用什么符号等,其本身不响应任何界面消息。
Tracker按不同的处理内容分成很多种类,如线生成器LineTrackerBean,圆
图9-7 专题图向导对话框示意图
图9-8 专题图效果图
形生成器ArcTrackerBean,多边形生成器polygonTrackerBean等。它们各自的处理内容不同,但是对外接口基本一致,都用点集points来创建一个Tracker对象。
Tracker的种类非常多,对于每一种特定的几何类型和特定操作都有相应的实现。绘制不同的对象使用不同的Tracker。每一个Tracker只做一件事情。包括通过鼠标操作(圆、矩形框、折线、多边形拾取等)获得一个几何对象的方法。下面为获得一个点的例子,其他种类依此类推。
方法PointTrackerBean.makeShape
关键代码片断说明:
/**
*点生成器
*/
shape=PointTrackerBean.makeShape(points);
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。