Flex加载google地图、百度地图以及天地图作底图
一 Flex加载Google地图作底图
(1)帮助类GoogleLayer.as
/*
* 根据输入的地图类型加载Google地图(by chenyuming)
*/ package Layers
{ 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; public class GoogleLayer extends TiledMapServiceLayer
{
private var _tileInfo:TileInfo=new TileInfo();
private var _baseURL:String="";
private var MapStyle:String=""; public function GoogleLayer(mapStyle:String)
{
this.MapStyle=mapStyle;
super();
buildTileInfo();
setLoaded(true); } override public function get fullExtent():Extent
{
return new Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, new SpatialReference());
} override public function get initialExtent():Extent
{
return new Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, new SpatialReference());
} override public function get spatialReference():SpatialReference
{
return new SpatialReference();
} override public function get tileInfo():com.esri.ags.layers.supportClasses.TileInfo
{
return _tileInfo;
} override protected function getTileURL(level:Number, row:Number, col:Number):URLRequest
{
var s:String = "Galileo".substring(, (( * col + row) % )); var url:String ="";
if (this.MapStyle == "Vector")//获取矢量地图
{
url = "http://mt" + (col % ) + ".google.com/vt/lyrs=m@158000000&hl=zh-CN&gl=cn&" +
"x=" + col + "&" +
"y=" + row + "&" +
"z=" + level + "&" +
"s=" + s;
}
else if (this.MapStyle == "Terrain")//获取地形图
{
url = "http://mt" + (col % ) + ".google.cn/vt/lyrs=t@131,r@227000000&hl=zh-CN&gl=cn&" +
"x=" + col + "&" +
"y=" + row + "&" +
"z=" + level + "&" +
"s=" + s;
}
else if (this.MapStyle == "Image")//获取影像地图
{
url = "http://mt" + (col % ) + ".google.com/vt/lyrs=s&hl=en&gl=en&" +
"x=" + col + "&" +
"y=" + row + "&" +
"z=" + level + "&" +
"s=" + s;
}
else if (this.MapStyle == "POI")//获取道路等POI,和影像地图配合使用
{
url = "http://mt" + (col % ) + ".google.com/vt/imgtp=png32&lyrs=h@169000000&hl=zh-CN&gl=cn&" +
"x=" + col + "&" +
"y=" + row + "&" +
"z=" + level + "&" +
"s=" + s;
}
return new URLRequest(url);
}
public function set url(vals:String):void
{
this._baseURL = vals;
}
private function buildTileInfo():void
{
_tileInfo.height=;
_tileInfo.width=;
_tileInfo.origin=new MapPoint(-20037508.342787, 20037508.342787);
_tileInfo.spatialReference=new SpatialReference();
_tileInfo.lods = [
new LOD(, 156543.033928, 591657527.591555),
new LOD(, 78271.5169639999, 295828763.795777),
new LOD(, 39135.7584820001, 147914381.897889),
new LOD(, 19567.8792409999, 73957190.948944),
new LOD(, 9783.93962049996, 36978595.474472),
new LOD(, 4891.96981024998, 18489297.737236),
new LOD(, 2445.98490512499, 9244648.868618),
new LOD(, 1222.99245256249, 4622324.434309),
new LOD(, 611.49622628138, 2311162.217155),
new LOD(, 305.748113140558, 1155581.108577),
new LOD(, 152.874056570411, 577790.554289),
new LOD(, 76.4370282850732, 288895.277144),
new LOD(, 38.2185141425366, 144447.638572),
new LOD(, 19.1092570712683, 72223.819286),
new LOD(, 9.55462853563415, 36111.909643),
new LOD(, 4.77731426794937, 18055.954822),
new LOD(, 2.38865713397468, 9027.977411),
new LOD(, 1.19432856685505, 4513.988705),
new LOD(, 0.597164283559817, 2256.994353),
new LOD(, 0.298582141647617, 1128.497176)
];
} public function lon2Mercator(px:int):int
{
var x:int = px * 20037508.34 / ;
return x;
} public function lat2Mercator(py:int):int
{
var y:int;
y = Math.log(Math.tan(( + py) * Math.PI / )) / (Math.PI / );
y = y * 20037508.34 / ;
return y;
}
}
}
(2)引用方法
//加载google地图
var baseLayer:GoogleLayer = new GoogleLayer("Image")
baseMap.addLayer(baseLayer);
二 Flex加载百度地图作底图
(1)帮助类BaiduLayer.as
/*
* 根据输入的地图类型加载百度地图(by chenyuming)
*/ package Layers
{
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; public class BaiduLayer extends TiledMapServiceLayer
{
//成员变量
private var _tileInfo:TileInfo = new TileInfo();
private var _wkid:int = ;
private var cornerCoordinate:Number = 20037508.3427892;
private var _mapStyle:String = "Image";
private var _initialExtent:Extent; public function BaiduLayer(mapStyle:String)
{
this._mapStyle = mapStyle; super();
buildTileInfo(); // to create our hardcoded tileInfo
setLoaded(true); // Map will only use loaded layers
} // 全屏范围
override public function get fullExtent():Extent
{
return new Extent(-cornerCoordinate, -cornerCoordinate, cornerCoordinate, cornerCoordinate, new SpatialReference(_wkid));
} // 初始化范围 (左下角坐标,右上角坐标)
override public function get initialExtent():Extent
{
return new Extent(5916776.8, 1877209.3, 19242502.6, 7620381.8, new SpatialReference());
} // 空间参考系
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 zoom:int = level - ;
var offsetX:int = Math.pow(, zoom) as int;
var offsetY:int = offsetX - ;
var numX:int = col - offsetX;
var numY:int = (-row) + offsetY; zoom = level + ;
var num:int = (col + row) % + ; var url:String = null;
if (_mapStyle == "Vector") //获取矢量地图
{
url = "http://q"+num+".baidu.com/it/u=x="+numX+";y="+ numY + ";z=" + zoom + ";v=013;type=web&fm=44";
}
else if (_mapStyle == "Image") //影像地图
{
url = "http://q"+num+".baidu.com/it/u=x="+numX+";y="+numY+";z="+zoom+";v=009;type=sate&fm=46";
}
else if (_mapStyle == "POI") //获取道路等POI,和影像地图配合使用
{
url = "http://q"+num+".baidu.com/it/u=x="+numX+";y="+numY+";z="+zoom+";v=013;type=trans&fm=47";
}
return new URLRequest(url);
} // 自定义方法,定义地图缩放等级
private function buildTileInfo():void
{
_tileInfo.height=;
_tileInfo.width=;
_tileInfo.origin=new MapPoint(-cornerCoordinate, cornerCoordinate);
_tileInfo.spatialReference=new SpatialReference(_wkid);
_tileInfo.lods = [
new LOD(, 156543.033928, 591657527.591555),
new LOD(, 78271.5169639999, 295828763.795777),
new LOD(, 39135.7584820001, 147914381.897889),
new LOD(, 19567.8792409999, 73957190.948944),
new LOD(, 9783.93962049996, 36978595.474472),
new LOD(, 4891.96981024998, 18489297.737236),
new LOD(, 2445.98490512499, 9244648.868618),
new LOD(, 1222.99245256249, 4622324.434309),
new LOD(, 611.49622628138, 2311162.217155),
new LOD(, 305.748113140558, 1155581.108577),
new LOD(, 152.874056570411, 577790.554289),
new LOD(, 76.4370282850732, 288895.277144),
new LOD(, 38.2185141425366, 144447.638572),
new LOD(, 19.1092570712683, 72223.819286),
new LOD(, 9.55462853563415, 36111.909643),
new LOD(, 4.77731426794937, 18055.954822),
new LOD(, 2.38865713397468, 9027.977411),
new LOD(, 1.19432856685505, 4513.988705),
new LOD(, 0.597164283559817, 2256.994353),
new LOD(, 0.298582141647617, 1128.497176)
];
}
}
}
(2)引用方法
//加载百度地图
var baseLayer:BaiduLayer = new BaiduLayer("Image");
var POILayer:BaiduLayer = new BaiduLayer("POI");
baseMap.addLayer(baseLayer);
baseMap.addLayer(POILayer);
三 Flex加载天地图作底图(经纬度投影)
(1)帮助类TianDiTuLayer.as
/*
* 根据输入的地图类型加载天地图(by chenyuming)
* 注意:投影类型为经纬度
*/ package Layers
{
import com.esri.ags.SpatialReference;
import com.esri.ags.geometry.Extent;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
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 flash.sampler.Sample; public class TianDiTuLayer extends TiledMapServiceLayer
{
private var _tileInfo:TileInfo;
private var _baseURL:String;
private var _baseURLs:Array;
private var _initExtent:String;
private var _serviceMode:String;
private var _imageFormat:String;
private var _layerId:String;
private var _tileMatrixSetId:String;
private var _mapStyle:String=""; public function TianDiTuLayer(mapStyle:String,serviceMode:String = "KVP",imageFormat:String = "tiles")
{
this._mapStyle=mapStyle;//设置地图类型
this._serviceMode = serviceMode;
this._imageFormat = imageFormat; super();
this._tileInfo = new TileInfo();
this._initExtent = null;
this.buildTileInfo();
setLoaded(true);
} override public function get fullExtent() : Extent
{
return new Extent(-, -, , , new SpatialReference());
} public function set initExtent(initextent:String):void
{
this._initExtent = initextent;
} override public function get initialExtent() :Extent
{
if (this._initExtent == null)
return new Extent(70.0, 15.0, 135.0, 55.0, new SpatialReference());
var coors:Array = this._initExtent.split(",");
return new Extent(Number(coors[]), Number(coors[]), Number(coors[]) ,Number(coors[]), new SpatialReference());
} override public function get spatialReference() : SpatialReference
{
return new SpatialReference();
} override public function get tileInfo() : TileInfo
{
return this._tileInfo;
} //根据不同地图类型加载不同WMTS服务
override protected function getTileURL(level:Number, row:Number, col:Number) : URLRequest
{
if(this._mapStyle == "ImageBaseMap")//获取影像地图(底图)
{
_baseURL = "http://t0.tianditu.com/img_c/wmts";
_layerId = "img";
_tileMatrixSetId = "c";
}
else if(this._mapStyle == "ImageCNNote")//获取影像地图(中文注记)
{
_baseURL = "http://t0.tianditu.com/cia_c/wmts";
_layerId = "cia";
_tileMatrixSetId = "c";
}
else if(this._mapStyle == "ImageENNote")//获取影像地图(英文注记)
{
_baseURL = "http://t0.tianditu.com/eia_c/wmts";
_layerId = "eia";
_tileMatrixSetId = "c";
}
else if(this._mapStyle == "TerrainBaseMap")//获取地形图(底图)
{
_baseURL = "http://t0.tianditu.com/ter_c/wmts";
_layerId = "ter";
_tileMatrixSetId = "c";
}
else if(this._mapStyle == "TerrainCNNote")//获取地形图(中文注记)
{
_baseURL = "http://t0.tianditu.com/cta_c/wmts";
_layerId = "cta";
_tileMatrixSetId = "c";
}
else if(this._mapStyle == "TerrainENNote")//获取地形图(英文注记)
{
//暂无
}
else if(this._mapStyle == "VectorBaseMap")//获取矢量图(底图)
{
_baseURL = "http://t0.tianditu.com/vec_c/wmts";
_layerId = "vec";
_tileMatrixSetId = "c";
}
else if(this._mapStyle == "VectorCNNote")//获取矢量图(中文注记)
{
_baseURL = "http://t0.tianditu.com/cva_c/wmts";
_layerId = "cva";
_tileMatrixSetId = "c";
}
else if(this._mapStyle == "VectorENNote")//获取矢量图(英文注记)
{
_baseURL = "http://t0.tianditu.com/eva_c/wmts";
_layerId = "eva";
_tileMatrixSetId = "c";
} var urlRequest:String=_baseURL+ "/wmts?Service=WMTS&Request=GetTile&Version=1.0.0" +
"&Style=Default&Format="+_imageFormat+"&serviceMode="+_serviceMode+"&layer="+_layerId +
"&TileMatrixSet="+_tileMatrixSetId+"&TileMatrix=" + level + "&TileRow=" + row + "&TileCol=" + col; return new URLRequest(urlRequest);
} //切片信息
private function buildTileInfo() : void
{
this._tileInfo.height = ;
this._tileInfo.width = ;
this._tileInfo.origin = new MapPoint(-, );
this._tileInfo.spatialReference = new SpatialReference();
this._tileInfo.lods = new Array();
this._tileInfo.lods = [
new LOD( , 0.703125, 2.958293554545656E8),
new LOD( , 0.351563, 1.479146777272828E8),
new LOD( , 0.175781, 7.39573388636414E7),
new LOD( , 0.0878906, 3.69786694318207E7),
new LOD( , 0.0439453, 1.848933471591035E7),
new LOD( , 0.0219727, 9244667.357955175),
new LOD( , 0.0109863, 4622333.678977588),
new LOD( , 0.00549316, 2311166.839488794),
new LOD( , 0.00274658, 1155583.419744397),
new LOD(, 0.00137329, 577791.7098721985),
new LOD(, 0.000686646, 288895.85493609926),
new LOD(, 0.000343323, 144447.92746804963),
new LOD(, 0.000171661, 72223.96373402482),
new LOD(, 8.58307e-005, 36111.98186701241),
new LOD(, 4.29153e-005, 18055.990933506204),
new LOD(, 2.14577e-005, 9027.995466753102),
new LOD(, 1.07289e-005, 4513.997733376551),
new LOD(, 5.36445e-006, 2256.998866688275)
];
}
}
}
(2)引用方法
//加载天地图(经纬度投影)
var baseLayer:TianDiTuLayer = new TianDiTuLayer("VectorBaseMap")//天地图底图
var CNNoteLayer:TianDiTuLayer = new TianDiTuLayer("VectorCNNote");//中文注记
baseMap.addLayer(baseLayer);
baseMap.addLayer(CNNoteLayer);
四 Flex加载天地图作底图(球面墨卡托投影)
(1)帮助类TianDiTuLayerMercator.as
/*
* 根据输入的地图类型加载天地图(by chenyuming)
* 注意:投影类型为球形墨卡托
*/ package Layers
{
import com.esri.ags.SpatialReference;
import com.esri.ags.geometry.Extent;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
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 flash.sampler.Sample; public class TianDiTuLayerMercator extends TiledMapServiceLayer
{
private var _tileInfo:TileInfo;
private var _baseURL:String;
private var _baseURLs:Array;
private var _initExtent:String;
private var _layerId:String;
private var _mapStyle:String=""; public function TianDiTuLayerMercator(mapStyle:String)
{
this._mapStyle=mapStyle;//设置地图类型 super();
this._tileInfo = new TileInfo();
this._initExtent = null;
this.buildTileInfo();
setLoaded(true);
} override public function get fullExtent() : Extent
{
return new Extent(-20037508.3427892,-20037508.3427892, 20037508.3427892,20037508.3427892, new SpatialReference());
} public function set initExtent(initextent:String):void
{
this._initExtent = initextent;
} override public function get initialExtent() :Extent
{
if (this._initExtent == null)
return new Extent(8397502.3, 2660018.1, 15003861.0, 5509344.0, new SpatialReference());
var coors:Array = this._initExtent.split(",");
return new Extent(Number(coors[]), Number(coors[]), Number(coors[]) ,Number(coors[]), new SpatialReference());
} override public function get spatialReference() : SpatialReference
{
return new SpatialReference();
} override public function get tileInfo() : TileInfo
{
return this._tileInfo;
} //根据不同地图类型加载不同WMTS服务
override protected function getTileURL(level:Number, row:Number, col:Number) : URLRequest
{
_baseURL = "http://t0.tianditu.com"; if(this._mapStyle == "ImageBaseMap")//获取影像地图(底图)
{
_layerId = "img_w";
}
else if(this._mapStyle == "ImageCNNote")//获取影像地图(中文注记)
{
_layerId = "cia_w";
}
else if(this._mapStyle == "ImageENNote")//获取影像地图(英文注记)
{
_layerId = "eia_w";
}
else if(this._mapStyle == "TerrainBaseMap")//获取地形图(底图)
{
_layerId = "ter_w";
}
else if(this._mapStyle == "TerrainCNNote")//获取地形图(中文注记)
{
_layerId = "cta_w";
}
else if(this._mapStyle == "TerrainENNote")//获取地形图(英文注记)
{
//暂无
}
else if(this._mapStyle == "VectorBaseMap")//获取矢量图(底图)
{
_layerId = "vec_w";
}
else if(this._mapStyle == "VectorCNNote")//获取矢量图(中文注记)
{
_layerId = "cva_w";
}
else if(this._mapStyle == "VectorENNote")//获取矢量图(英文注记)
{
_layerId = "eva_w";
} var urlRequest:String =_baseURL+"/DataServer?T="+_layerId+"&x="+col+"&y="+row+"&l="+level; return new URLRequest(urlRequest);
} //切片信息
private function buildTileInfo() : void
{
this._tileInfo.height = ;
this._tileInfo.width = ;
this._tileInfo.origin = new MapPoint(-20037508.3427892,20037508.3427892,new SpatialReference());
this._tileInfo.spatialReference = new SpatialReference();
this._tileInfo.lods = new Array();
this._tileInfo.lods = [
new LOD( ,77664.761018562790697674418604651, 2.958293554545656E8),
new LOD( ,38832.380509281395348837209302326, 1.479146777272828E8),
new LOD( ,19416.190254640697674418604651163, 7.39573388636414E7),
new LOD( ,9708.0951273203488372093023255814, 3.69786694318207E7),
new LOD( ,4854.0475636601744186046511627907, 1.848933471591035E7),
new LOD( ,2427.0237818300872093023255813953, 9244667.357955175),
new LOD( ,1213.5118909150436046511627906977, 4622333.678977588),
new LOD( ,606.75594545752180232558139534884, 2311166.839488794),
new LOD( ,303.37797272876090116279069767442, 1155583.419744397),
new LOD(,151.68898636438045058139534883721, 577791.7098721985),
new LOD(, 75.844493182190225290697674418605, 288895.85493609926),
new LOD(, 37.922246591095112645348837209302, 144447.92746804963),
new LOD(, 18.961123295547556322674418604651, 72223.96373402482),
new LOD(, 9.4805616477737781613372093023256, 36111.98186701241),
new LOD(, 4.7402808238868890806686046511628, 18055.990933506204),
new LOD(, 2.3701404119434445403343023255814, 9027.995466753102),
new LOD(, 1.1850702059717222701671511627907, 4513.997733376551),
new LOD(, 0.59253510298586113508357558139535, 2256.998866688275)
];
}
}
}
(2)引用方法
//加载天地图(球面墨卡托投影)
var baseLayer:TianDiTuLayerMercator = new TianDiTuLayerMercator("ImageBaseMap")//天地图底图
var CNNoteLayer:TianDiTuLayerMercator = new TianDiTuLayerMercator("ImageCNNote");//中文注记
baseMap.addLayer(baseLayer);
baseMap.addLayer(CNNoteLayer);
五 天地图WMTS服务

Flex加载google地图、百度地图以及天地图作底图的更多相关文章
- ARCGIS FLEX API加载google地图、百度地图、天地图(转)
http://www.cnblogs.com/chenyuming507950417/ Flex加载google地图.百度地图以及天地图作底图 一 Flex加载Google地图作底图 (1)帮助类G ...
- ArcGIS API for Silverlight 加载google地图
原文:ArcGIS API for Silverlight 加载google地图 using System; using System.Net; using System.Windows; using ...
- ArcGIS API for Silverlight加载google地图(后续篇)
原文:ArcGIS API for Silverlight加载google地图(后续篇) 之前在博客中(http://blog.csdn.net/taomanman/article/details/8 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(13)、图层扩展方式加载Google地图
1.前言 http://mt2.google.cn/vt/lyrs=m@225000000&hl=zh-CN&gl=cn&x=420&y=193&z=9& ...
- ArcGIS API for Silverlight中加载Google地形图(瓦片图)
原文:ArcGIS API for Silverlight中加载Google地形图(瓦片图) 在做水利.气象.土地等行业中,若能使用到Google的地形图那是再合适不过了,下面就介绍如何在ArcGIS ...
- Flex 加载pdf
如果想要在flex加载pdf,虽然pdf格式是开源的,但是自己去解析太麻烦了,pdf还要分页之类的,现在网上各种文档上传可以在线看很多都是pdf,当然也有word,excel之类,其实很多都是转了sw ...
- Flex 加载 wmf,svg
最近做gis系统发现要在flex加载wmf图片.我记得flash的loader只能是png,gis,jpg.wmf格式居然是window出的,flash居然不支持我也是醉了,没办法,只能后台转格式,首 ...
- 使用WebGL加载Google街景图
我们要实现的功能比较简单:首先通过坐标定位.我的位置.地址搜索等方式,调用google map api获取地址信息.然后根据地址信息中的全景信息获取当前缩放级别的全景信息.最终把这些全景信息通过Web ...
- Flex 加载dwg
之前写的几种格式不是专门gis格式,这次来说说加载dwg.首先dwg格式不同于dxf格式,虽然autocad都能加载进去,真正用的比较多的是dwg格式,反正测绘,国土规划部门都是,吐槽下,然而auto ...
随机推荐
- spirng定时任务的两种配置:注解和xml
一 使用注解Task 1.在applicationContext.xml中配置 <?xml version="1.0" encoding="UTF-8"? ...
- 解决 iOS7 通过tag 找不到 UITableViewCell 的子控件
当iOS7问世,程序的世界就混乱了,以前良好的程序,现在是一塌糊涂,于是只能把问题一个一个攻破. 由于项目当中需要每个cell显示数目不同的图片,于是我在每个cell 赋值之前,通过一下方法把cell ...
- json体会
1.用json-lib的jar包,创建JsonObject的对象(其引用取名jo),JsonObject jo = new JsonObject(); 再创建一个jsonobject对象:JsonOb ...
- window2008 r2 负载均衡
两台服务器win2008 r2 ,iis7.5 ip地址192.168.5.16, 192.168.5.18 虚拟ip 192.168.5.30 设置过程: 1.在两台服务器上安装负载均衡模块 ...
- BZOJ 3110 树套树 && 永久化标记
感觉树套树是个非常高深的数据结构.从来没写过 #include <iostream> #include <cstdio> #include <algorithm> ...
- GO RPC
HTTP RPC SERVER CODE package main import ( "errors" "fmt" "net/http" & ...
- CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
转载,原文见:http://blog.csdn.net/freshlover/article/details/17143341 CSS3的透明度属性opacity想必大家都已经用的无处不在了.而对于不 ...
- ListView去除顶部和底部边缘阴影(亲测4.4及以前的版本都适用)
ListView滑动到顶部和底部时出现的阴影消除方法:android2.3以前用android:fadingEdge="none"android2.3以后用android:over ...
- 深入C#中get与set的详解(转)
转自:http://www.jb51.net/article/37960.htm 释一:属性的访问器包含与获取(读取或计算)或设置(写)属性有关的可执行语句.访问器声明可以包含 get 访问器或 se ...
- java实现定时任务的三种方法
/** * 普通thread * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着, * 通过sleep方法来达到定时任务的效果.这样可以快速简单的实现,代码如下: * @au ...