美文网首页OpenLayersGeoServerOGC
Openlayers调用GeoServer发布的WMTS地图服务

Openlayers调用GeoServer发布的WMTS地图服务

作者: WebGiser | 来源:发表于2018-12-07 10:12 被阅读4次

OpenLayers中提供了调用WMTS服务的接口。其主要思想是先构建切片信息,再传入服务信息即可。切片信息包括切片名、切片大小、切片范围等。这些切片信息都可以在GeoServer中Gridsets中找到,按照其中的切片信息构建相应的请求方法即可。

1、在GeoServer的Gridsets中查看切片信息

image.png

2、在GeoServer中预览WMTS地图服务

image.png

3、代码实现

<template>
    <div id="mainDiv">

    </div>
</template>

<script>
    import Map from 'ol/Map.js';
    import View from 'ol/View.js';
    import {getWidth, getTopLeft} from 'ol/extent.js';
    import TileLayer from 'ol/layer/Tile.js';
    import {get as getProjection} from 'ol/proj.js';
    import OSM from 'ol/source/OSM.js';
    import WMTS from 'ol/source/WMTS.js';
    import WMTSTileGrid from 'ol/tilegrid/WMTS.js';

    export default {
        name: 'OpenlayersViewer2',
        data () {
            return {
                map:''
            }
        },
        mounted:function(){
            //设置地图投影
            var projection = getProjection('EPSG:4326');
            var projectionExtent = projection.getExtent();

            //切片名
            var matrixIds = ['EPSG:4326:0', 'EPSG:4326:1', 'EPSG:4326:2', 'EPSG:4326:3', 'EPSG:4326:4', 'EPSG:4326:5', 'EPSG:4326:6', 'EPSG:4326:7', 'EPSG:4326:8', 'EPSG:4326:9', 'EPSG:4326:10',
                'EPSG:4326:11', 'EPSG:4326:12', 'EPSG:4326:13', 'EPSG:4326:14', 'EPSG:4326:15', 'EPSG:4326:16', 'EPSG:4326:17', 'EPSG:4326:18', 'EPSG:4326:19', 'EPSG:4326:20', 'EPSG:4326:21'];

            //切片大小
            var resolutions = [0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 6.866455078125E-4, 3.4332275390625E-4, 1.71661376953125E-4, 8.58306884765625E-5,
                4.291534423828125E-5, 2.1457672119140625E-5, 1.0728836059570312E-5, 5.364418029785156E-6, 2.682209014892578E-6, 1.341104507446289E-6, 6.705522537231445E-7, 3.3527612686157227E-7];

            this.map = new Map({
                target: 'mainDiv',
                view: new View({
                    center: [122, 40],
                    zoom: 9,
                    projection:'EPSG:4326'
                }),
                layers: [
                    new TileLayer({
                        source: new WMTS({
                            url: 'http://localhost:8080/geoserver/gwc/service/wmts',
                            layer: 'wzf:wafangdianshi_0',
                            matrixSet: 'EPSG:4326',
                            format: 'image/png',
                            projection: projection,
                            tileGrid: new WMTSTileGrid({
                                origin: getTopLeft(projectionExtent),
                                resolutions: resolutions,
                                matrixIds: matrixIds
                            }),
                            wrapX: true
                        })
                    })
                ]
            });
        }
    }
</script>


<style scoped>
    #mainDiv{
        width:100%;
        height:100%;
    }
</style>
image.png

相关文章

网友评论

    本文标题:Openlayers调用GeoServer发布的WMTS地图服务

    本文链接:https://www.haomeiwen.com/subject/srwzcqtx.html