例子源文件:\developerkit\samples\applications\engineviewer\java\engineviewer.jar
运行环境的搭建:
解压后,在eclipse或jbuilder里新建工程并添加类源码,然后添加arcgis java 类库引用,类库文件在\java 目录下,可以根据需要引用所需的,我是图方便把所有文件都引用到工程里了。最后在系统环境变量path里追加\bin,否则ao将不能完成初始化的工作,实质是调用com组件。 完成以上,工程环境大致就搭建完成了。
本人的环境是:windows server 2003jdk1.5arcengine9.0eclipse3.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安装版本上是这样。
大约就这些,待续。欢迎留言讨论。有说得不对的地方请指正。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/