Flex加载 ArcGIS Server发布的切片地图(不直接使用ArcGISTiledMapServiceLayer)

1、类
package lyrs 

import com.esri.ags.SpatialReference; 
import com.esri.ags.geometry.Extent; 
import com.esri.ags.geometry.MapPoint; 
import com.esri.ags.layers.TiledMapServiceLayer; 
import com.esri.ags.layers.supportClasses.LOD; 
import com.esri.ags.layers.supportClasses.TileInfo; 

import flash.net.URLRequest; 

import flashx.textLayout.formats.Float; 

import mx.controls.Alert; 

public class Server extends TiledMapServiceLayer 

//成员变量 
private var _tileInfo:TileInfo = new TileInfo(); 
private var _wkid:int = 2384; 
private var _baseURL:String = "http://10.19.1.50/mapcache"; 
// private var cornerCoordinate:Number = 20037508.3427892; 
public var _mapStyle:String = "Vector"; 
private var _initialExtent:Extent; 

public function Server() 

super(); 
buildTileInfo(); // to create our hardcoded tileInfo 
setLoaded(true); // Map will only use loaded layers 


// 全屏范围 
override public function get fullExtent():Extent 

return new Extent(483777.982548502,296808.286300247,510241.397182649,315029.660346049, new SpatialReference(_wkid)); 


// 初始化范围 (左下角坐标,右上角坐标) 
override public function get initialExtent():Extent 

return new Extent(483777.982548502,296808.286300247,510241.397182649,315029.660346049, new SpatialReference(_wkid)); 


// 空间参考系 
override public function get spatialReference():SpatialReference 

return new SpatialReference(_wkid); 


override public function get tileInfo():TileInfo 

return _tileInfo; 


override protected function getTileURL(level:Number, row:Number, col:Number):URLRequest 

var url:String = _baseURL 
+ "/L" + padString(String(level), 2, "0") 
+ "/R" + padString(row.toString(16), 8, "0") 
+ "/C" + padString(col.toString(16), 8, "0") + ".png"; 
return new URLRequest(url); 


// 自定义方法,定义地图缩放等级 
private function buildTileInfo():void 

_tileInfo.height=512; 
_tileInfo.width=512; 
_tileInfo.origin=new MapPoint(-5123200,10002100); 
_tileInfo.spatialReference=new SpatialReference(_wkid); 
_tileInfo.lods = [ 
new LOD(0, 33.0729828126323, 125000), 
new LOD(1, 16.9333672000677, 64000), 
new LOD(2, 8.46668360003387, 32000), 
new LOD(3, 4.23334180001693, 16000), 
new LOD(4, 2.11667090000847, 8000), 
new LOD(5, 1.05833545000423, 4000), 
new LOD(6, 0.529167725002117, 2000), 
new LOD(7, 0.264583862501058, 1000), 
new LOD(8, 0.132291931250529, 500) 
]; 


private function padString(text:String, size:int, ch:String):String 

while (text.length < size) 

text = ch + text; 

return text; 


}

2、引用1
baseMap可为esri:map组件
    var baseLayer:Server = new Server();
    baseMap.addLayer(baseLayer); 
2、引用2
 <esri:Map id="mymap" width="100%" height="100%">
  <lyrs:Server id="virtualTiles" fadeInFrameCount="12"/>
 </esri:Map>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值