天地图瓦片下载及解析

来源:互联网 发布:iphone7必备软件推荐 编辑:程序博客网 时间:2024/05/14 10:34

有短时间没有搞flex,正在转向js,毕竟这是整个web开发的趋势嘛

离题了啊,下面说下吧,flex下载天地图瓦片及手动解析瓦片的问题(js也是类似的方式),还是贴代码吧(大概的东西,主要思路,不是全部代码)

//所选下载级别的分辨率(可以从Map对象获取)
var resolution:Number = (saveLevel.selectedItem as LOD).resolution;
//所要下载地图的范围
var ext:Extent = graphic.geometry.extent;
//所要下载的地图级别
var level:String = saveLevel.textInput.text;
//计算所选范围地图瓦片起始技结束行列值 (天地图范围(-180,90,180,90),瓦片大小256)
var startX:Number = Math.floor((ext.xmin + 180)/(256*resolution));
var startY:Number = Math.floor((90 - ext.ymax)/(256*resolution));
var endX:Number =Math.floor((ext.xmax + 180)/(256*resolution));
var endY:Number = Math.floor((90 - ext.ymin)/(256*resolution));

var passArr:Array = [];

if(startX<0)startX = 0;
if(startY<0)startY = 0;
var count:Number = 0;
//下面是我要往后台传输的数据及格式(后台下载瓦片)
for(var i:int=startX;i<=endX;i++)
{
for(var j:int=startY;j<=endY;j++)
{
var obj:Object = {};
obj.layerid = saveType.selectedItem.layerid;
obj.name = j+"_"+i;
obj.level = level;
obj.type = saveType.selectedItem.type;
passArr.push(obj);
cout++;
}
}
imgCount.text = "共有图片数量: "+count ;

//-----既然已经知道开始和结束瓦片行列数了,剩下来的就只剩后台(或前台)下载了,至于怎么保存,保存成什么名字,自己定咯-----eg.//

var requestUrl:String="http://t0.tianditu.com/vec_c/wmts/wmts?Service=WMTS&Request=GetTile&Version=1.0.0&Style=Default&Format=tiles&serviceMode=KVP&layer=vec&TileMatrixSet=c&TileMatrix=" + level + "&TileRow=" + row + "&TileCol=" + col;

//至于怎么解析,网上资料一抓一大把
//根据不同地图类型加载不同WMTS服务
//继承TiledMapServiceLayer就OK
override protected function getTileURL(level:Number, row:Number, col:Number) : URLRequest 
{
//依赖于你保存到本地的名字及路径了
var urlRequest:String=_baseURL+ "map/" + mapStyle +"/"+ level +"/" + row+"_"+ col+".png";
return new URLRequest(urlRequest);   


1 0
原创粉丝点击