ArcGIS Server Felx API接入E都市地图
ArcGIS Server Felx API接入E都市地图 (本实例只是个人兴趣研究,如果想要应用到商业用途,请联系相关厂家) ? 通过HttpWatch工具查看E都市网站加载三维地图的方式及原理,能够观察到其加载的方式是通过切片的方式进行加载,但不同城市的地址不一样,需要根据实际情况调整切片加载的位置保证其在实际的位置,而且相互之间不压盖。观察每幅切片的加载地址,推测出其加载的算法,继承ArcGIS Server Flex API的TiledMapServiceLayer类,实现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,new SpatialReference(_wkid)); ? ??????? } ? ??????? ? ??????? //———————————- ? ??????? // 初始化范围 ? ??????? // - needed if Map doesn”t have an extent ? ??????? //———————————- ? ??????? ? ??????? overridepublicfunctiongetinitialExtent():Extent ? ??????? { ? ??????????? returnnewExtent(-cornerCoordinate,new SpatialReference(_wkid)); ? ??????? } ? ??????? ? ??????? //———————————- ? ??????? // 空间参考系 ? ??????? // - needed if Map doesn”t have a spatialReference ? ??????? //———————————- ? ??????? overridepublicfunctiongetspatialReference():SpatialReference ? ??????? { ? ??????????? returnnewSpatialReference(_wkid); ? ??????? } ? ??????? ? ??????? //———————————- ? ??????? // tileInfo ? ??????? //———————————- ? ??????? overridepublicfunctionget tileInfo():TileInfo ? ??????? { ?????? } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |