zoukankan      html  css  js  c++  java
  • 浅析 ArcEngine Java EngineViewer 例子


    例子源文件:<ArcGIS>\DeveloperKit\samples\Applications\EngineViewer\Java\EngineViewer.jar

    运行环境的搭建:
    解压后,在Eclipse或Jbuilder里新建工程并添加类源码,然后添加arcgis java 类库引用,类库文件在<ArcGIS>\java 目录下,可以根据需要引用所需的,我是图方便把所有文件都引用到工程里了。最后在系统环境变量Path里追加<ArcGIS>\Bin,否则AO将不能完成初始化的工作,实质是调用Com组件。 完成以上,工程环境大致就搭建完成了。

    本人的环境是:Windows server 2003  JDK1.5  ArcEngine9.0  eclipse3.2

    这个例子功能比较简单,实现打开MxD文件,放大缩小漫游地图,点选查看属性等功能。
    界面布局与ArcMap类似,左边显示TOC,中间显示主地图。

    这里需要重点说的是,这个TOC和Map不是COM或者NET里的TOCControl和MapControl控件。他们都是通过Java基础的可视化组件编码实现的,实现的功能并没有COM或NET上的强大和高效,在例子的源码包里,你可以找到实现的细节。说白了,就是自己写了一个Toc和Map控件,虽然编码工作量增大了,但从另一个侧面来看,程序的灵活性加强了,你可以自己打造出个性化的地图控件来,当然这是要求有深厚的Java编程作为基础的。TOC的分组图层,符号显示等都需要自己实现,例子里没有实现,Map显示的实质是一张二进制流的图片文件(有了这个图片流,自己也可以实现一个简单的Web地图服务)。

    代码摘要:
    启动对象:EngineViewer.java
    地图显示:MapInfo.java,MapComponent.java
    TOC显示:TocControl.java TocTreeRenderer.java

    此例子使用了arcengine底层java对象接口,界面表现使用将java awt来实现,我大致的列出几个主要的:
    MapServer:负责数据加载和显示
    IMapServerInfo:获得地图服务的相关信息
    IMapImage:负责生成地图显示的图片流

    ILayerDescriptions 和 ILayerDescription:获得图层的描述信息,图层名,类型等
    IMap:这个接口不用多说,地图资源接口,可以进一步获得地图的图层对象等等。MapServer.getMap(arg0) 由此方法获得引用。

    总结:
    (1)arcengine没有可视化的java组件,编程面向较底层的arcengine java对象
    (2)开发工作量较com或net的大,但程序灵活性高
    (3)要求开发人员有较深的java windows编程基础
    (4)arcengine java功能实质调用的是com组件实现,非100%java,至少在arcengine windows安装版本上是这样。

    大约就这些,待续。欢迎留言讨论。有说得不对的地方请指正。

  • 相关阅读:
    Python-异常处理
    进程及其状态
    操作系统基础
    计算机组成基础
    Java wait()、notify()、notifyAll()方法
    Java 死锁
    线程同步
    Java 创建多线程
    Java 接口
    抽象类和抽象方法
  • 原文地址:https://www.cnblogs.com/gis9/p/540632.html
Copyright © 2011-2022 走看看