OpenLayers叠加arcgis矢量、影像和切片

1、arcgis矢量数据的叠加     

        /**

        * @description 创建矢量数据图层

        * @param {Object} config 图层对象数据

        * @param {Object} olmap 地图ol对象

        * @param {String} idCode 图层id

        * @param {Number} zindex 图层层级

        */

        var createLayerVectorData = (config , olmap , idCode , zindex) =>{

                var layer = null

                layer = new olmap.layer.Image({

                        id: idCode,

                        zIndex: zindex,

                        source: new olmap.source.ImageArcGISRest({

                                name: config.name,

                                url: config.url

                        })

                })

                return layer

        }

2、arcgis影像数据的叠加

        /**

        * @param {Object} olmap 地图ol对象

        * @param {String} idCode 图层id

        * @param {Object} config 图层对象数据

        * @param {Number} zindex 图层层级

        * @param {Array} projection 投影坐标系

        */

        var createLayerImageArcGISRest = (config , olmap , idCode , zindex , projection) =>{

                var layer = new olmap.layer.Image({

                        id: idCode,

                        zIndex: zindex,

                        source: new olmap.source.ImageArcGISRest({

                                projection: projection.split(':')[1],

                                name: config.name,

                                url: config.url,

                                params: {

                                        layers: config.layerId ? 'show:' + config.layerId : ''

                                },

                                crossOrigin: 'anonymous' //防止地图打印出现问题

                        })

                })

                return layer

        }

3、arcgis切片数据的叠加

        /**

        * @description 创建XYZ切片方式创建图层 layer.TileArcGISRest

        * @param {String} originStr 3.48768E7,1.00021E7

        * @param {Object} config 图层对象数据

        * @param {Object} olmap 地图ol对象

        * @param {String} idCode 图层id

        * @param {Number} zindex 图层层级

        * @param {Array} projection 投影坐标系

        * @param {Array} extent 地图范围

        * @param {Array} resolutions 分辨率的集合

        */

        var createLayerTileArcGISRest = (config , originStr , olmap ,idCode , zindex , projection ,         extent , resolutions) =>{

                var layer = null;

                let url = config.url + '/tile/{z}/{y}/{x}'

                var ori = originStr.split(',')

                var origin = [parseFloat(ori[0]), parseFloat(ori[1])]

                var tileGrid = new olmap.tilegrid.TileGrid({

                        tileSize: 256,

                        origin: origin,

                        extent: extent,

                        resolutions: resolutions

                })

                var tileArcGISXYZ = new olmap.source.XYZ({

                        tileGrid: tileGrid,

                        projection: projection,

                        url: url,

                        crossOrigin: 'anonymous' //防止地图打印出现问题

                })

                layer = new olmap.layer.Tile({

                        id: idCode,

                        zIndex: zindex,

                        source: tileArcGISXYZ

                })

                return layer

        }

猜你喜欢

转载自blog.csdn.net/qqjuanqq/article/details/127304539