hengyu
路人甲
路人甲
  • 注册日期2004-01-08
  • 发帖数65
  • QQ24637884
  • 铜币406枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:21031回复:60

原创:一个普通程序员初步学习arcims的心得与感受

楼主#
更多 发布于:2004-09-02 01:34
    用arcims做webgis的应用算来也有一段时间了,从最初的一无所知到现在的初步了解,期间有所经历,把一些感受写出来,希望对从事或爱好这个领域的人有所帮助。也欢迎大家作此方面的交流。
(1)语言的选择
       当初所知能够选择的语言种类不是很多,因为个人知识面的原因,记忆中除了arcims就还有maptreme了。之所以最后定下arcims,纯粹是因为它在我们项目领域的应用比较广泛而已。
      arcims可以利用的语言很多。还有现成的模板套用,比如说html viewer,记得当时使用的时候还感觉这个功能挺多的,而且服务端几乎不用去管,只需学习下html viewer的帮助和arcxml就可以实现相对很健壮的系统。可是我们公司以前都是自主研发gis平台,而且基于价格的原因,不太愿意依赖别人的东西,正是这种思想引导下,我们采用了activeX connector的方式,一方面过去习惯于使用组件面向对象的方式编程,另一方面有助于快速理解arcxml的结构(个人感觉activeX connector比arcXML更容易上手,而且更容易记住其层次关系,虽然activeX connector的功能确实不强)。
(2)开发的重点
    对我们最初开发来说,运行速度不是考虑问题的主要因素,最重要的是有个东西出来可以演示。另外在我看来,只要能够画点线面,其他的都可以自己搞定,而且熟悉gis的人应该知道,这个过程其实并不难。
     从activeX的帮助文档开始,开始了arcims的应用开发,最初的过程很快,地图基本操作的功能一个月左右的时间就完成了。开发中感觉稍花点时间的就是鹰眼,测距,侧面积,多图层模糊检索,以及多层的缓冲区分析。我没有研究html viewer,一方面时间不允许,另一方面也不太想深入到繁琐的代码中去,不过好在有开发MapX的经验,所以更多的只是复制一下编程上的技巧而已,基本也都顺利过关。
    然而这种好景不长,在开发等值线的时候,因为需要散列无数(仅形容很多)的点使之平滑,在画线的过程中服务端速度遭遇到严重的瓶颈,一个含等值线的地图需要很长时间才能显示发布,这个功能形同虚设,成为演示过程中难言的痛。
    同时又遇到了另一个问题,就是需要从数据库中读取3000多个点并画到地图上作为点分布图,使用ACETATE LAYER方式同样遇到速度瓶颈(不要说用ArcSDE,毕竟这个还是很贵的,能不用就不用),多用户并发访问时,每次地图刷新都很慢,开发陷入了一个可预期的性能危机。
   这时我们公司有个java强人提出用java applet方式实现客户端画动态点线面,并用了一个月左右的时间实现了主要功能和无比强大的专题,从使用结果看,除了在启动的过程中因为数据从服务端传递到客户端的原因较慢外,一旦加载成功后速度非常快。问题得到了初步的解决。
   但 java applet还是要加载虚拟机,传递解压缩文件,启动速度始终有瓶颈,所以更多在局域网内使用,广域网上由于限制太多,因此现在主要想用svg和vml(其实开始已经用到一些简单的实现了,比如缓冲区的画圆,矩形拉框等)替代java applet实现部分画图的功能。但使用java applet可以将大量的分析过程移植到客户端,减轻服务器的运算量以及服务器与客户端的数据传递,在很多场合具有不可替代的优势。所以我感觉如果用svg和xml,最好是比较纯粹的画图,不太复杂的算法可以用javascript实现。svg和vml的好处我就不多说了,网上有很多相关说明,其中感觉vml能与html紧密整合,但功能不太强,而且微软不再提供技术支持;svg功能强大,但由于是纯粹的xml,所以不太容易从原来的系统平滑过渡。
(3) 总结
    由于现在很多设想还只是处于研发阶段,另外从初期到现在开发内容变化较大,而且重点都是放在客户端界面的实现上,所以在项目具体应用上的投入不是很多,整个项目进度相对不是很快,压力也可想而知。不过,能够在编程工作中不断发现问题和解决的方向,压力也就不算什么了。这就是我,一个初级程序员进入这个领域简单而快乐的收获。
喜欢0 评分0
liu76xt
论坛版主
论坛版主
  • 注册日期2004-05-26
  • 发帖数262
  • QQ
  • 铜币499枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2009-03-14 11:34
<P>留一脚</P>
| ------------- | 白云悠悠矶头月涌千骏过, 往事渺渺江上风情一燕来。 | ------------- | [img]http://www.gisempire.com/bbs/showimg.asp?BoardID=3&filename=2004-9/200491972356282.gif[/img]
举报 回复(0) 喜欢(0)     评分
weisongmiao
路人甲
路人甲
  • 注册日期2007-03-22
  • 发帖数24
  • QQ
  • 铜币174枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2009-02-27 12:52
<P>挺好~~  这些类似的解决方案讨论帖应该再多些,在这些讨论中能够发现很多的共性问题。</P>
举报 回复(0) 喜欢(0)     评分
jackielrt
路人甲
路人甲
  • 注册日期2008-04-07
  • 发帖数18
  • QQ
  • 铜币152枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2008-09-26 17:40
<img src="images/post/smile/dvbbs/em06.gif" /><img src="images/post/smile/dvbbs/em06.gif" />
举报 回复(0) 喜欢(0)     评分
weisongmiao
路人甲
路人甲
  • 注册日期2007-03-22
  • 发帖数24
  • QQ
  • 铜币174枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2008-09-19 10:54
我想问一句,用VML能实现根据一条折线生成一个缓冲区这种图形吗?这个图形是不规则的,不知道VML能行不?
举报 回复(0) 喜欢(0)     评分
whmwxhanshan123
路人甲
路人甲
  • 注册日期2006-06-17
  • 发帖数3108
  • QQ
  • 铜币6445枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2007-02-02 19:50
<img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
lichuanhero
路人甲
路人甲
  • 注册日期2005-05-30
  • 发帖数32
  • QQ
  • 铜币191枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2007-02-02 12:46
<img src="images/post/smile/dvbbs/em04.gif" />
举报 回复(0) 喜欢(0)     评分
vienna
路人甲
路人甲
  • 注册日期2005-12-20
  • 发帖数8
  • QQ
  • 铜币122枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2007-01-05 12:30
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
黎黎
路人甲
路人甲
  • 注册日期2006-06-28
  • 发帖数22
  • QQ
  • 铜币231枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2006-12-04 09:56
好贴,怎么忍心让其沉下去
举报 回复(0) 喜欢(0)     评分
qiusuo808
路人甲
路人甲
  • 注册日期2006-09-29
  • 发帖数6
  • QQ
  • 铜币112枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2006-10-06 09:07
<img src="images/post/smile/dvbbs/em05.gif" />
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部