ArcGIS Server Felx API接入E都市地图

来源:互联网 发布:平安公司大数据体检 编辑:程序博客网 时间:2024/04/29 20:29

ArcGIS Server Felx API接入E都市地图

(本实例只是个人兴趣研究,如果想要应用到商业用途,请联系相关厂家)

 

通过HttpWatch工具查看E都市网站加载三维地图的方式及原理,能够观察到其加载的方式是通过切片的方式进行加载,但不同城市的地址不一样,需要根据实际情况调整切片加载的位置保证其在实际的位置,而且相互之间不压盖。观察每幅切片的加载地址,推测出其加载的算法,继承ArcGIS Server Flex APITiledMapServiceLayer类,实现E都市地图服务数据的接入。具体代码如下:

 

packagecom.esri.viewer.components.common.edushi

 

{

 

    importcom.esri.ags.SpatialReference;

 

    importcom.esri.ags.geometry.Extent;

 

    importcom.esri.ags.geometry.MapPoint;

 

    import com.esri.ags.layers.TiledMapServiceLayer;

 

    import com.esri.ags.layers.supportClasses.LOD;

 

    importcom.esri.ags.layers.supportClasses.TileInfo;

 

   

 

    importflash.net.URLRequest;

 

   

 

    importflashx.textLayout.formats.Float;

 

   

 

    publicclassEdushiTiledMapServiceLayerextendsTiledMapServiceLayer

 

    {

 

        //成员变量

 

        privatevar _tileInfo:TileInfo =new TileInfo();// see buildTileInfo()

 

        privatevar _wkid:int = 102100;

 

        privatevarcornerCoordinate:Number = 20037508.342787;

 

       

 

       

 

        publicfunctionEdushiTiledMapServiceLayer()

 

        {

 

            super();

 

           

 

            buildTileInfo();// to create our hardcoded tileInfo

 

           

 

            setLoaded(true);// Map will only use loaded layers

 

        }

 

       

 

        //———————————-

 

        // 全屏范围

 

        // - required to calculate the tiles to use

 

        //———————————-

 

        overridepublicfunctionget fullExtent():Extent

 

        {

 

            returnnewExtent(-cornerCoordinate, -cornerCoordinate, cornerCoordinate,cornerCoordinate,new SpatialReference(_wkid));

 

        }

 

       

 

        //———————————-

 

        // 初始化范围

 

        // - needed if Map doesn”t have an extent

 

        //———————————-

 

       

 

        overridepublicfunctiongetinitialExtent():Extent

 

        {

 

            returnnewExtent(-cornerCoordinate, -cornerCoordinate, cornerCoordinate,cornerCoordinate,new SpatialReference(_wkid));

 

        }

 

       

 

        //———————————-

 

        // 空间参考系

 

        // - needed if Map doesn”t have a spatialReference

 

        //———————————-

 

        overridepublicfunctiongetspatialReference():SpatialReference

 

        {

 

            returnnewSpatialReference(_wkid);

 

        }

 

       

 

        //———————————-

 

        // tileInfo

 

        //———————————-

 

        overridepublicfunctionget tileInfo():TileInfo

 

        {

       }

原创粉丝点击