• ArcGISFlexSDK中关于切换地图问题(不同范围)


      最近在用ArcGIS Flex SDK开发GIS项目,在过程当中发现一个比较棘手的问题。

      需求是这样的,项目中需要对地图进行切换,并且切换的地图不是同一坐标系下的地图,而且加载地图起始中心点也不相同。这样就导致了一个问题,当重新AddLayer的时候,Map的Lods甚至Extent都是前一幅地图的配置参数。从而导致新地图的加载位置错误,造成不出图或者出白图的情况。

      其实解决这个问题的基本思路就是手动修改Map的lods和extent信息,使Map用上新添加Layer的属性。

      1.采用静态的TileInfo信息,将切换到的Tileinfo信息静态缓存下来,直接调用直接设置。但是这样有一个弊端,如果服务器配置的TileInfo信息改变,就需要从新设置静态缓存的TileInfo信息,不是很灵活。

      2.动态获取TileInfo信息,New 一个Layer的时候,Layer会自动同步TileInfo信息,当同步完成之后,获取需要设置的信息,设置给Map即可。

      代码:

      private function setLayer():void{

               newLayer = new ArcGISTiledMapServiceLayer(selectSchool.serviceUrl);

        newLayer.id = "baselayer";

        map.addLayer(newLayer);

        setLods();

      }

      private function setLods():void{
        if(newLayer.tileInfo != null){
          map.lods = newLayer.tileInfo.lods;
          map.extent = newLayer.initialExtent;
        }
        else{
          setTimeout(setLods,1000);
        }
      }

      如果ArcGISTiledMapServiceLayer能提供一个设置TileInfo后的监听,解决起来就更容易一些。

  • 相关阅读:
    MD5值算法原理
    AUTH过程
    锁定应用,解锁应用,锁卡,解卡,更改密码指令
    借/贷记卡的应用
    借记卡,贷记卡,准贷记卡三者的区别
    PBOC2.0与PBOC3.0的区别
    ED/EP简介
    与恒宝有关的一些常用知识
    java卡与native卡的区别
    计算机组和域的区别
  • 原文地址:https://www.cnblogs.com/yuxichina/p/2546215.html
Copyright © 2020-2023  润新知