openmap_OpenMap教程4 –图层

openmap1.简介在第一个教程中,我们创建了一个基本的OpenMap GIS应用程序,该应用程序在JFrame内显示从文件系统加载的具有一个形状图层的地图。 该教程基于com.bbn.openmap.app.example.SimpleMap 。 在第二个教程中,我们扩展了基本应用程序以使用MapHandler ,在第三个教程中,我们看到了它如何利用openmap.properties将所...
摘要由CSDN通过智能技术生成
openmap

openmap

1.简介

在第一个教程中,我们创建了一个基本的OpenMap GIS应用程序,该应用程序在JFrame内显示从文件系统加载的具有一个形状图层的地图。 该教程基于com.bbn.openmap.app.example.SimpleMap 。 在第二个教程中,我们扩展了基本应用程序以使用MapHandler ,在第三个教程中,我们看到了它如何利用openmap.properties将所有内容连接在一起。 在本教程中,我们将讨论地图图层。

2.地图图层概述

教程1中,我们看到了如何将ShapeLayer添加到MapBean 。 OpenMap支持大量的图层类型,可以将它们添加到MapBean中,如图1所示。

BufferedLayerMapBean是使用BufferedLayer (请参见图1 )为某些图层创建图像的MapBean 。 它使用“ Layer背景标志来确定应将哪些图层添加到此缓冲的图像。 任何不响应MouseEvent的层都应指定为背景层,以减少其paint()方法对应用程序的处理负担。

OMGraphicHandlerLayer是基础层类,实现了需要交互和共享OMGraphic的层的最常见功能。 GraticuleLayer在内部创建其OMGraphic ,而ShapeLayer从文件读取数据。 DTEDLayerRpfLayer具有图像缓存。 有一些特殊的层允许您访问空间数据库以创建OMGraphic 。 可以在层内使用任何管理图形的技术。

作为基类, OMGraphicHandlerLayer具有内置功能,可以更轻松地管理OMGraphic中的OMGraphic 。 扩展OMGraphicHandlerLayer ,请实现prepare()方法以返回OMGraphicList其中包含适用于当前在图层中设置的投影的OMGraphic 。 收集,准备和生成OMGraphic的所有工作都应在prepare()方法中执行。 OMGraphicHandlerLayer还具有内置的SwingWorker对象,可用于在单独的线程中调用prepare() 。 可以通过调用doPrepare()方法来启动SwingWorker线程。 如果在调用doPrepare()方法时SwingWorker已经很忙,则在原始线程完成后,将启动一个新线程来调用prepare() 。 在prepare()方法的默认实现中,当前列表只是使用当前投影生成并返回。

图1:OpenMap的图层类层次结构

图1:OpenMap的图层类层次结构

请参阅开发者指南,以获取有关如何使用这些层的更多信息。

OpenMap还提供了一些培训层( com.bbn.openmap.layer.learn ):

  • 基本层
  • 互动层
  • SimpleAnimationLayer
  • 投影响应层

以及测试图层( com.bbn.openmap.layer.test ):

  • BoundsTestLayer
  • GeoCrossDemoLayer
  • GeoIntersectionLayer
  • GeoTestLayer
  • HelloWorldLayer
  • 测试层

最后, com.bbn.openmap.layer.DemoLayer是一个图层如何使用OMDrawingTool编辑OMGraphic 。 它使用绘图工具在地图上创建区域,这些区域也用作过滤器,以控制哪些OMGraphic也是可见的。

图层派生自java.awt.Component ,它们是可以添加到MapBean的唯一组件。 因为Layer s为Component小号包含一个内MapBean容器,的呈现Layer小号到地图上由Java组件呈现机制控制。 该机制控制分层组件如何在彼此之上绘制。 为了确保按照正确的顺序将每个组件绘制到窗口中, Component类包括一个方法,该方法允许其告知渲染机制它想被绘制。 此功能允许Layers彼此独立工作,并让MapBean避免知道Layer上正在发生什么。

OpenMap应用程序中的图层可以使用来自许多来源的数据:

  • 通过计算
  • 从本地硬盘驱动器的数据文件
  • 来自URL的数据文件
  • 从jar文件中包含的数据文件
  • 使用从数据库(JDBC)检索的信息
  • 使用从地图服务器接收的信息(图像或地图对象)

2.1创建图层

让我们从最简单的层开始。 从教程1开始,我们已经看到了如何创建ShapeLayer并将其添加到MapBean 。 但是,自从教程3开始,我们就具备了openmap.propertiesMapHandler 。 这是您需要做的更改。

清单1 – openmap.properties

...
# These layers are turned on when the map is first started.  Order
#
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值