mapserver服务加载

mapserver服务加载

服务获取:

方法:在链接后面添加   REQUEST=getcapabilities

例如:

http://127.0.0.1/mapserver/vmap/WMTS/1.0/XZQH/11?REQUEST=getcapabilities

加载的链接可以在xml文件中获取。

openlayers加载:

var layer = new ol.layer.Tile({
            source: new ol.source.XYZ({
                url:"http://127.0.0.1/mapserver/layer/WMTS/1.0.0/XZQH/11/getTile/{z}/{y}/{x}",
         projection:
"EPSG:4326"
    })
});

注意事项:

默认加载为3857坐标系,如果服务为4326,需要添加     projection:"EPSG:4326"  否则会出现下面的情况:

 

cesium加载:

var shadedRelief = new Cesium.UrlTemplateImageryProvider({
            url: 'http://127.0.0.1/mapserver/vmap/WMTS/1.0.0/XZQH/11/getTile/{myLevel}/{myy}/{myx}?format=image/png',
            customTags: {
                myLevel: function (imageryProvider, x, y, z) {
                    console.log(z)
                    return z + 1
                },
                myx: function (imageryProvider, x, y, z) {
                    return x;
                },
                myy: function (imageryProvider, x, y, z) {
                    return y;
                }
            },
            layer: 'XZQH',
            style: '11',
            format: 'image/png',
            tileMatrixSetID: 'default028mm',
            maximumLevel: 19,
            tilingScheme: new Cesium.GeographicTilingScheme({
                ellipsoid: Cesium.Ellipsoid.WGS84,
                numberOfLevelZeroTilesX: 2,
                numberOfLevelZeroTilesY: 1
            }),
        });
        viewer.imageryLayers.addImageryProvider(shadedRelief);

注意事项:

1.cesium的wmts服务可以使用WebMapTileServiceImageryProvider来接入,但是4326坐标系的层级会从1开始,api默认从0开始,所以使用  UrlTemplateImageryProvider 将z值+1接入,否则会出现以下情况:

 

如果是geoserver服务可以设置  tileMatrixLabels、tilingScheme  参数来解决,但是mapserver服务会报500错误。

 WebMapTileServiceImageryProvider代码记录参考:

参考1:

let layerWMTS = new Cesium.WebMapTileServiceImageryProvider({
            url: 'http://127.0.0.1/mapserver/vmap/WMTS/1.0.0/XZQ_GLBJ/11/getTile/{TileMatrix}/{TileRow}/{TileCol}',
                        layer: "XZQ_GLBJ",
                        style: '11',
                        format: 'image/png',
                        service: "WMTS",
                        version: "1.0.0",
                        tileMatrixSetID : 'default028mm',
                        tileMatrixLabels:["default028mm:1","default028mm:2","default028mm:3","default028mm:4","default028mm:5","default028mm:6"],
                        tilingScheme: new Cesium.GeographicTilingScheme({
                            ellipsoid: Cesium.Ellipsoid.WGS84,
                            numberOfLevelZeroTilesX: 2,
                            numberOfLevelZeroTilesY: 1
                        })
        });
        viewer.imageryLayers.addImageryProvider(layerWMTS)
View Code

参考2:

let layerWMTS = new Cesium.WebMapTileServiceImageryProvider({
            url: "http://127.0.0.1/mapserver/layer/WMTS/1.0.0/XZQ_GLBJ/11",
            layer: "XZQ_GLBJ",
            style: '11',
            format: 'image/png',
            service: "WMTS",
            version: "1.0.0",
            tileMatrixSetID: 'default028mm',
            tileMatrixLabels:["default028mm:1","default028mm:2","default028mm:3","default028mm:4","default028mm:5","default028mm:6"],
            tilingScheme: new Cesium.GeographicTilingScheme({
                ellipsoid: Cesium.Ellipsoid.WGS84,
                numberOfLevelZeroTilesX: 1,
                numberOfLevelZeroTilesY: 2
            }),
            maximumLevel: 19,
        });
        viewer.imageryLayers.addImageryProvider(layerWMTS)
View Code

 

 

钻研不易,转载请注明出处。。。。。。

 

posted @ 2023-01-10 18:23  莫小龙  阅读(339)  评论(0编辑  收藏  举报