• Flex RIA的ArcIMS WebGIS之路(二)一切从servlet开始


      甲:地图从哪里来?
         乙:废话,当然是从ArcIMS来!
         甲:怎么从ArcIMS来?
         乙:看ArcIMS宝卷ArcXML_Programmers_Ref!
         甲:
         于是在漫无目的的寻找中发现了servlet,原来ArcIMS服务器都是通过servlet来接收请求发送响应的,看来得想办法让Flex访问这个servlet发送数据还要能接收数据才行。怎么办,怎么办?外事问Google,内事问Baidu,在那么多不是我想要的网页搜索结果中找到了urlRequest和urlLoader,这就是地图之源。
          给urlRequest个ArcIMS的servlet路径,定义一个Request方法(当然是POST),将请求内容塞给它,剩下的事情就给urlLoader去做吧。
    //发送ArcXML的请求
      //request 发送的ArcXML请求
      //customerService 自定义服务名称 例如“Query”
      //-------------------------------------------------------------------
      public function SendArcXML(request:String, customerService:String):void
      {
       var url:String = "http://"+this.m_serverName+"/servlet/com.esri.esrimap.Esrimap?ServiceName="+this.m_serviceName+"&ClientVersion=4.0";
       if (customerService != "")
        url += "&CustomService=" + customerService;
       m_urlRequest.url = url; 
       m_urlRequest.method ="POST";
       m_urlRequest.data = request;
       try {
                    m_urlLoader.load(m_urlRequest);
                } catch (error:Error) {
                    mx.controls.Alert.show("发送请求错误","IMS请求",4,null);
                }
      }
    要注意urlLoader与.net里面的httpRequest不一样,是异步获取数据的因此数据要在事件处理中获得
      private function completeHandler(event:Event):void {
                var loader:URLLoader = URLLoader(event.target);
                this.m_data = loader.data;
                //Alert.show(m_data);
                DispatchLoadComplete();
            }
    唉!还得为IMSConnection设计自定义事件
    public static var LOADCOMPLETE:String ="IMSLoadCompelete";
    //添加LOADCOMPLETE事件代理
      public function DispatchLoadComplete():void
      {
       var e:Event = new Event(IMSConnection.LOADCOMPLETE);
       dispatchEvent(e);
      }
    PS:到现在项目有个暂时的名称了FlashIMSEngine
  • 相关阅读:
    beforeRouteLeave 实现vue路由拦截浏览器的需求,进行一系列操作 草稿保存等等
    VUE 路由变化页面数据不刷新问题
    vue 监听 watch 使用
    vue-cli配置文件详解
    vue-cli脚手架中webpack配置基础文件详解
    Dbus组成和原理
    NUMA架构的优缺点
    define 的全部使用方法
    敏捷(Agile)——“说三道四”
    Linux 内核模块编译 Makefile
  • 原文地址:https://www.cnblogs.com/Brune/p/587006.html
Copyright © 2020-2023  润新知