Flex加载 ArcGIS Server发布的切片地图(不直接使用ArcGISTiledMapServiceLayer)
2016-11-20 15:09
627 查看
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.9
4000
82548502,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>
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.9
4000
82548502,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>
相关文章推荐
- 扩展TiledMapServiceLayer,加载ArcGIS Server发布的切片地图
- 扩展TiledMapServiceLayer,加载ArcGIS Server发布的切片地图
- ArcGISDynamicMapServiceLayer以ArcGISTiledMapServiceLaye方式使用
- ArcGISDynamicMapServiceLayer以ArcGISTiledMapServiceLaye方式使用
- 重写TiledServiceLayer实现Arcgis访问Mapabc地图服务
- Arcgis之ArcGISTiledMapServiceLayer与ArcGISDynamicMapServiceLayer对比
- ArcGISDynamicMapServiceLayer 和 ArcGISTiledMapServiceLayer 区别
- 使用Geoserver(其实是Geowebcache) 发布本地的ArcGIS 切片地图
- ArcGis for Flex---Flex4.0之使用DropdownList控件来切换GIS地图map
- ArcGISTiledMapServiceLayer
- 重写ArcGIS的TiledMapServiceLayer调用天地图瓦片
- 使用ArcGIS Server for Flex API 开发包agslib加载天地图2.0版本经纬度地图
- IOS 使用 ArcGis sdk 在iphone 6P上无法显示 AGSDynamicMapServiceLayer 图层的问题
- ArcGisTiledMapServiceLayer 和 ArcGisDynamicServiceLayer 在ArcGIS server for Java的区别
- ArcGIS for Java_Flex程序中浏览自己的ArcGIS Server 9.3中发布的地图
- ArcGISTiledMapServiceLayer does not support Multi-Layer Caches
- Openlayers3 加载Geowebcache 发布的 ArcGIS 切片地图
- ArcGISTiledMapServiceLayer “json is undefined”错误
- 重写ArcGIS的TiledMapServiceLayer调用天地图瓦片
- 重写ArcGIS的TiledMapServiceLayer呼叫世界地图图块