zoukankan      html  css  js  c++  java
  • 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后的监听,解决起来就更容易一些。

  • 相关阅读:
    知乎高赞:假如我有500w存进余额宝,可以每天坐着等吃吗?
    为什么想举办一场 中国深圳•测试开发大会
    2020 年互联网大厂薪资出炉!老夫酸了.......
    再见,我亲手创办的公司
    互联网公司的年会也太太太刺激了吧!
    python环境安装及配置
    Python isdigit()方法
    购物车程序优化2
    python中常见的报错信息
    pycharm中的快捷键
  • 原文地址:https://www.cnblogs.com/yuxichina/p/2546215.html
Copyright © 2011-2022 走看看