• 给ArcIms穿件清凉的外衣


       用ArcIMS的html View做过项目的人都有个相当痛苦的经历。整天在一顿javascript 和ArcXml上转啊转,里面的结构一是一般的乱,东西也不是一般的多。如果新手拿着esri公司的参考文档看半天能找出个东南西北,头脑算是比较清醒的。
     最主要的是那个慢啊。。。。。
     单位有个项目,要求用VML在地图上动态绘制点东西。每次看到连续定义50个以上变量的代码我就容易发疯。所以还没看完第一个方法,我就开始想歪主意。想坏主意一般是从最熟悉的方向下手。在这之前曾用VML/底图方式分别实现矢量地图/图片地图的放大,缩小,移动,测量,选择,鹰眼.(用底图的缩放是伪缩放,不过用多级平滑处理后勉强能蒙过去)。干脆给拖过来试试,顺便测试下原来设计的兼容性。
       webGis地图操作,最常用的也就是放大,缩小,移动,测量,选择。顶多就偶偶做做图层切换。原来的实现方式是依赖以一个xml配置文件,根据坐标动态切换图片。
       不过这个活ArcIMS已经给我们包装好了(这个简单的包装其实是相当的昂贵的,一个key就好几万哪),只要向服务器发送出用ArcXML包装好的请求,服务器就能生成图片。
       说说流程吧:
        1, 获取地图信息
        2, 根据信息解析空间坐标,图层信息等
        3, 加载一张默认地图
        4, 根据用户进行地图操作(放大,缩小,移动,测量,选择)
        5, 根据操作屏幕坐标,换算出新的地图位置(投影坐标/地理坐标)
        6, 发出ArcXML请求
        7, ArcIMS服务器返回图片信息(包括图片位置和坐标)
        8, 将位置信息重新计算。
       好家伙,认真看了一下,原来地图操作方法和接口基本上不用动。只要改下缩放和绘制方法就ok了。
     
        核心代码
          
    核心代码
       搞了半天,终于能跑了,不过给偶们部门经理几句话就给毙了:“设计思路清晰,但没有像HTML viewer模版一样经过测试,公司无法预测风险”。既然公司用不上,那就给别人用吧,说不定还可用当作个ArcIMS入门级的练习程序,再不济,当个ArcIMS服务的测试程序也比HTML Viewer强。
       代码下载: /Files/sukyboor/ArcIMSDemo.rar。配置好arcIMS服务后,改下MapImageService地址就可用。(注意这里假设默认坐标系为投影坐标,通过定义一个经纬度区域与之对应,所以算出来的经纬度不一定正确。但如果直接用经纬度作为默认坐标系,则无此问题)
       有兴趣的人可任意在此基础上进行开发,并希望有好的应用能发一份给我看看。
  • 相关阅读:
    MySQL之存储引擎
    MySQL之基础功能
    MySQL之正则表达式
    MySQL之数据类型
    MySQL之多表查询
    MySQL之单表查询
    linux命令useradd添加用户详解
    MySQL之数据操作
    MySQL之表操作
    MySQL之库操作
  • 原文地址:https://www.cnblogs.com/sukyboor/p/ArcIMS.html
Copyright © 2020-2023  润新知