ArcGIS Server Felx API接入E都市地图

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;

 

   

 

    publicclassEdushiTiledMapServiceLayer extends TiledMapServiceLayer

 

    {

 

        //成员变量

 

        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

 

        {

       }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
/* *author:XudongChen *Date:2010-03-09 *QQ:233828249 81023617(不才) *Email:xznd@163.com */ 2009-8-13 1.加载分块地图 2.添加全景标记窗体 2009-8-14 1.增加控制条 2.增加全景标记、公交车标记显示层 3.解决地图定位问题 4.增加经纬度层功能 5.未修正图标层的定位 2009-8-15 1.已修正8.14地图定位错误,还存在放大缩小时定位不准 2.存在ie内存泄漏问题 2009-8-16 1.已修正8.15 ie内存泄漏问题,chrome下可能还存在内存泄漏 2.增加图标定位功能 3.增加鼠标滚轮事件(http://yongzhi.blog.hexun.com/5057947_d.html) 4.通过jquery加载json数据文件(图标显示层数据) 2009-8-17 1.增加建筑物高亮显示(还需完成鼠标mouseover和mouseout事件) 2009-8-18 1.完成建筑物高亮显示,有点小bug 2009-8-19 1.增加记录原始缩放比例的全局变量 2.解决建筑物高亮显示bug 2009-8-20 1.增加三维全景展示功能 2.浏览建筑详细功能 2009-8-21 1.引入jqueryAlert插件,美化弹出窗体 2009-8-23 1.增加搜索功能 2.清理建筑信息显示页和公交信息页多余数据 2009-10-22 1.增加小沙盘拖动类(鹰眼视图) BirdEye.js 完成小沙盘到地图的同步,同步方法:检测mouseup事件触发->修改url->request->计算坐标->同步行为 2.增加小沙盘样式表BirdEye.css 地图图片路径birdeyemap 3.完成window.parent地图->小沙盘的同步 问题:小沙盘->window.parent地图存在bug,可以尝试开启 2009-10-23 1.在小沙盘中增加浮动绿色框 2009-11-6 1.实现“鹰眼地图”不需移动,一幅可以看到见全景, 当主场景移动时,“鹰眼地图”只有小框在移动。 同时“小框” 主场景也在移动。 2009-12-17 1.测距功能事件配置 2009-12-21 1.完成测距功能 2009-12-22 1.配置搜索功能,后台改用s2sh框架 2.完成hessian+spring+hibernate整合,提供建筑信息和公司信息hessian查找服务 2009-12-23 1.配置hessian服务端缓存 2.配置hessian日志记录,输出到文件/log/wzucxd/html 3.完成建筑信息显示页,配置2级缓存 4.配置oscache 5.配置新闻信息模块 2010-1-13 1.完成chrome和ff下的搜索功能 2.搜索功能支持ie6.0+ //设置Theodolite$setPoint var cpointtmp = new CPoint(this.holder.offsetLeft + evt.clientX - this.mvl.offsetLeft, this.mvl.offsetTop + evt.clientY - this.mvl.offsetTop); Theodolite$setPoint(cpointtmp);

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值