ArcGIS Server Felx API接入E都市三维地图

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

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

packagecom.esri.viewer.components.common.edushi

{

importcom.esri.ags.SpatialReference;

importcom.esri.ags.geometry.Extent;

importcom.esri.ags.geometry.MapPoint;

importcom.esri.ags.layers.TiledMapServiceLayer;

importcom.esri.ags.layers.supportClasses.LOD;

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

importflash.net.URLRequest;

importflashx.textLayout.formats.Float;

public classEdushiTiledMapServiceLayer extends TiledMapServiceLayer

{

private var_tileInfo:TileInfo = new TileInfo();

private var_wkid:int = 102100;

private varcornerCoordinate:Number = 20037508.342787;

public functionEdushiTiledMapServiceLayer()

{

super();

buildTileInfo();

setLoaded(true);

}

override publicfunction get fullExtent():Extent

{

return newExtent(-cornerCoordinate, -cornerCoordinate, cornerCoordinate,cornerCoordinate, new SpatialReference(_wkid));

}

override publicfunction get initialExtent():Extent

{

return newExtent(-cornerCoordinate, -cornerCoordinate, cornerCoordinate, cornerCoordinate,new SpatialReference(_wkid));

}

override publicfunction get spatialReference():SpatialReference

{

return newSpatialReference(_wkid);

}

override publicfunction get tileInfo():TileInfo

{

return_tileInfo;

}

overrideprotected function getTileURL(level:Number, row:Number, col:Number):URLRequest

{

var url:String =“”;

var num:Number =10-level;

if (num == 3)

{

url =“http://cpic2.edushi.com/cn/beijing/zh-chs/mappic/png” + (num) + “/” + (col-20)+ “,” + (row-20) + “.png”;

}

else if (num ==2)

{

url =“http://cpic2.edushi.com/cn/beijing/zh-chs/mappic/png” + (num) + “/” + (col-40)+ “,” + (row-40) + “.png”;

}

else if (num ==1)

{

url =“http://cpic2.edushi.com/cn/beijing/zh-chs/mappic/png” + (num) + “/” + (col-80)+ “,” + (row-80) + “.png”;

}

return newURLRequest(url);

}

private functionbuildTileInfo():void

{

_tileInfo.height=256;

_tileInfo.width=256;

_tileInfo.origin=newMapPoint(-cornerCoordinate, cornerCoordinate);

_tileInfo.spatialReference=newSpatialReference(_wkid);

_tileInfo.lods =[

new LOD(0,156543.033928, 591657527.591555),

new LOD(1,78271.5169639999, 295828763.795777),

new LOD(2,39135.7584820001, 147914381.897889),

new LOD(3,19567.8792409999, 73957190.948944),

new LOD(4,9783.93962049996, 36978595.474472),

new LOD(5,4891.96981024998, 18489297.737236),

new LOD(6,2445.98490512499, 9244648.868618),

new LOD(7,1222.99245256249, 4622324.434309),

new LOD(8,611.49622628138, 2311162.217155),

new LOD(9,305.748113140558, 1155581.108577),

new LOD(10,152.874056570411, 577790.554289),

new LOD(11,76.4370282850732, 288895.277144),

new LOD(12,38.2185141425366, 144447.638572),

new LOD(13,19.1092570712683, 72223.819286),

new LOD(14,9.55462853563415, 36111.909643),

new LOD(15,4.77731426794937, 18055.954822),

new LOD(16,2.38865713397468, 9027.977411),

new LOD(17,1.19432856685505, 4513.988705),

new LOD(18,0.597164283559817, 2256.994353),

new LOD(19,0.298582141647617, 1128.497176)

];

}

}

}

加载方式:

varpEdushiTiledMapServiceLayer: EdushiTiledMapServiceLayer = newEdushiTiledMapServiceLayer();

map.addLayer(_pEdushiTiledMapServiceLayer,-1);

运行结果如下:

以上实现了ArcGIS Server Flex API接入E都市三维地图的功能。

ArcGIS Server Felx API接入E都市三维地图相关推荐

  1. ArcGIS Server Felx API接入E都市地图

    ArcGIS Server Felx API接入E都市地图 (本实例只是个人兴趣研究,如果想要应用到商业用途,请联系相关厂家) 通过HttpWatch工具查看E都市网站加载三维地图的方式及原理,能够观 ...

  2. Arcgis server Javascript API 官网相当于HelloWorld的完整版

    虽然放暑假了,不过最近依然很忙,一边忙着准备电子设计大赛,一边跟随研究生师兄们要做Arcgis相关内容,看了一本ArcGIS Server JavaScript API的书,结果发现是针对Arcgis ...

  3. 关于如何下载E都市三维地图的教程

    下载安装水经注E都市三维地图下载器,如果你没有安装,请百度"水经注软件"到官网下载. 软件安装后,启动界面如下图所示. 在软件的左边列出了可以下载E都市三维地图的城市,这里我们选择 ...

  4. 推荐:E都市三维地图, 酷!

    最近,有朋友推荐 E都市三维地图,真不错.许多城市的地图都有了,而且有时能确定到那个房间.相当有才,推荐一下. http://hangzhou.edushi.com/?eid=164127 比如,以上 ...

  5. ArcGIS Web API 接入E都市瓦片

    接入E都市也类似于google的瓦片,只是空间参考可控制性不强,但是E都市本身也不是用的常规空间参考,所以这样接进来不影响看得效果就可以了. publicclassEdushi :TiledMapSe ...

  6. C# 调用ArcGIS server admin api

    一.AGS server admin api 介绍 1.1什么是admin api AGS Server Admin api 官方的称呼是 AGS Server administrator api, ...

  7. ArcGIS Server .Net Web ADF体系结构

    ArcGIS Server .Net Web ADF体系结构 ArcGIS Server .net来创建应用有三个层次, 1 使用manager来创建一个web应用 2 使用 .net模板来创建应用 ...

  8. 【转】ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上

    如果要将自己的数据与ArcGIS online的数据叠加使用,那么:1.应该选择后者为Primary Map Resource(有一种情况下,可以将自己的服务作为Primary Map Resourc ...

  9. ArcGIS server如何将自己的小地图叠加到Google maps或者Virtual Earth上

    http://hi.baidu.com/wiselyman/blog/item/d2dbd6f9dc83dc51242df2e2.html 我自己有个厂区的地图是cad的,转换为shape格式.然后将 ...

最新文章

  1. 浅谈loadrunner中pacing设置
  2. powwr shell_Powershell Do While 循环
  3. Vim中数字自增、自减
  4. airflow mysql_Airflow 使用及原理分析
  5. 【使用注意】Boolean是final类型,值初始化后不能被更改
  6. 整数大小比较(信息学奥赛一本通-T1043)
  7. 京东宣布全员涨薪两个月! 打工人流下了羡慕的泪水
  8. php魔术方法例子,PHP魔术方法示例
  9. 排序算法--希尔排序
  10. 退役前的做题记录3.0
  11. powerbuilder防止反编译: pbkiller无法解析的部分公布
  12. css找某个元素的下个子元素,使用CSS获取特定位置的子元素
  13. 理解物理 CPU 与逻辑 CPU
  14. 健美运动员赛前脱水断碳_健美冠军指导书:赛前的去碳与充碳技巧(上)
  15. 平均的计算机符号,如何在Word中输入平均数的符号X上加一横(X拔)
  16. 四平方和定理(拉格朗日定理)
  17. powermock 入门介绍及使用示例
  18. solaris 的ZFS操作
  19. 第十三周 任务一
  20. H3C IRF MAD检测实战

热门文章

  1. thymeleaf前端数据绑定
  2. 傲腾无盘服务器,傲腾方案和顺网加速盘方案对比测试
  3. C++程序设计基础实验-实验三 类和对象
  4. openCV(贾志刚视频)笔记
  5. 2021-11-01 - 互联网常用英文缩写:DAU、ROI、MCN......
  6. 配置电脑和服务器硬件的参考
  7. 计算机主机平时怎么保养,电脑如何保养和维护?电脑日常保养和维护技巧
  8. 自媒体软件批量去水印 批量加减速度 批量去片头片尾 智能测量水印
  9. 基于阿里云的数据仓库架构设计
  10. 彩虹查单插件,带快递实时跟踪查询