1.天地图调用Server发布的WMS服务

具体发布服务的方法不再赘述,只需要注意发布的时候勾选“功能”处的WMS即可。



发布完后,点击WMS下URL,可查看到WMS服务的相关信息,而在调用时天地图的部分参数需要在url中查找。

先放一下天地图调用WMS代码
var config = { projection: "EPSG:4326" }; //初始化地图对象 mapLeft=new
TMap("mapLeftDiv",config); //设置地图显示为卫星 mapLeft.setMapType(TMAP_SATELLITE_MAP);
//调用本地SERVER发布的WMS服务 var config1 = { REQUEST:"GetMap", //操作名称 VERSION:"1.1.1",
//请求服务的版本 SERVICE:"WMS", //服务类型标识符 LAYERS:"0", //用","分隔的多个图层列表
TRANSPARENT:true, //输出图像背景是否透明 STYLES:"", //每个请求图层的用","分隔的描述样式
FORMAT:"image/png", //输出图像的类型 SRS:"EPSG:4326", //地图投影类型 //
SRS:mapLeft.getCode(), //地图投影类型 WIDTH:256, //输出地图图片的像素宽 HEIGHT:256 //输出地图图片的像素高
}; //创建WMS图层对象 wmsLayer = new
TTileLayerWMS("test","http://localhost:6080/arcgis/services/myWms/MapServer/WMSServer",config1);
//将WMS图层添加到地图上 mapLeft.addLayer(wmsLayer);




效果图:







2.arcgis API for JS调用天地图

网上资料很多,大体是说天地图加载到Server中需要对坐标系等进行转换才能被识别。下面是封装的转换模块,可以直接调用。

存放在common/TDTLayer.js
define([ "dojo/_base/declare", "esri/layers/TileInfo",
"esri/layers/TiledMapServiceLayer", "esri/SpatialReference",
"esri/geometry/Extent" ], function ( declare,TileInfo,
TiledMapServiceLayer,SpatialReference,Extent ) { return
declare(TiledMapServiceLayer, { _type:"", constructor: function (type) {
this._type=type; this.spatialReference = new SpatialReference({ wkid: 4326 });
this.initialExtent = (this.fullExtent = new Extent(-180.0, -90.0, 180.0, 90.0,
this.spatialReference)); this.tileInfo = new TileInfo({ "rows": 256, "cols":
256, "compressionQuality": 0, "origin": { "x": -180, "y": 90 },
"spatialReference": { "wkid": 4326 }, "lods": [ { "level": 2, "resolution":
0.3515625, "scale": 147748796.52937502 }, { "level": 3, "resolution":
0.17578125, "scale": 73874398.264687508 }, { "level": 4, "resolution":
0.087890625, "scale": 36937199.132343754 }, { "level": 5, "resolution":
0.0439453125, "scale": 18468599.566171877 }, { "level": 6, "resolution":
0.02197265625, "scale": 9234299.7830859385 }, { "level": 7, "resolution":
0.010986328125, "scale": 4617149.8915429693 }, { "level": 8, "resolution":
0.0054931640625, "scale": 2308574.9457714846 }, { "level": 9, "resolution":
0.00274658203125, "scale": 1154287.4728857423 }, { "level": 10, "resolution":
0.001373291015625, "scale": 577143.73644287116 }, { "level": 11, "resolution":
0.0006866455078125, "scale": 288571.86822143558 }, { "level": 12, "resolution":
0.00034332275390625, "scale": 144285.93411071779 }, { "level": 13,
"resolution": 0.000171661376953125, "scale": 72142.967055358895 }, { "level":
14, "resolution": 8.58306884765625e-005, "scale": 36071.483527679447 }, {
"level": 15, "resolution": 4.291534423828125e-005, "scale": 18035.741763839724
}, { "level": 16, "resolution": 2.1457672119140625e-005, "scale":
9017.8708819198619 }, { "level": 17, "resolution": 1.0728836059570313e-005,
"scale": 4508.9354409599309 }, { "level": 18, "resolution":
5.3644180297851563e-006, "scale": 2254.4677204799655 } ] }); this.loaded =
true; this.onLoad(this); }, getTileUrl: function (level, row, col) { // return
"http://t" + row % 8 +
".tianditu.cn/cva_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=c&TILEMATRIX="
+ level + "&TILEROW=" + row + "&TILECOL=" + col + "&FORMAT=tiles";
if(this._type==null){ return "http://t" + row % 8 +
".tianditu.com/vec_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=c&TILEMATRIX="
+ level + "&TILEROW=" + row + "&TILECOL="+ col + "&FORMAT=tiles" ; } //return "
http://t0.tianditu.com/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&TILEMATRIX="
+ level + "&TILEROW=" + row + "&TILECOL="+ col + "&FORMAT=tiles" ; else
if(this._type=="ano"){//标注图层 return "http://t" + row % 8 +
".tianditu.com/cva_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=c&TILEMATRIX="
+ level + "&TILEROW=" + row + "&TILECOL="+ col + "&FORMAT=tiles" ; } } }); });
注意在<script>标签内设置dojoConfig,否则无法找到相应TDTLayer
dojoConfig = { parseOnLoad:true, packages:[{ name:"common",
location:document.location.pathname.substring(0,document.location.pathname.indexOf("/",1))+"/jsp/product/app/lwyt/common"
}] };
使用如下:
require([ "esri/map", "common/TDTLayer", ], function( Map,TDTLayer ) { var map
= new Map("map", { // basemap: "streets", center: [117.07264, 36.65621], zoom:
11 }); map.addLayers([new TDTLayer(),new TDTLayer("ano")]); });
效果图如下:



友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信