天地图与Arcgis互调服务

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")]);
});

效果图如下:


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值