• openlayer调用geoserver


    一、写在前面

    openlayer3调用geoserver

    二、实现过程

    首先初始化地图

        var map = new ol.Map({
          layers: [baseLayer, wmsLayer],
          target: 'map',
          view: new ol.View({
            center: [120.5467674176599, 30.634534885764285],
            units: "degrees",
            projection: "EPSG:4326",
            zoom: 13
          })
        });
    

    添加osm的底图

        var baseLayer = new ol.layer.Tile({
          source: new ol.source.OSM()
        });
        map.addLayer(wmsLayer);
    

    1. 调用wms

    wms是较为简单的服务,无需过多的配置

        var wmsLayer = new ol.layer.Image({
          source: new ol.source.ImageWMS({
            // 此处为geoserver服务器中地址,可点击Layer Preview,通过openlayer查看浏览器地址获取。
            url: 'http://localhost:8082/geoserver/tongxiang/wms',
            params: {
              // 此处的名称为geoserver图层选项中图层名称
              'LAYERS': 'tongxiang:geo_civil_engineering'
            }
          })
        });
        map.addLayer(wmsLayer);
    

    在这里插入图片描述

    2. 调用wfs

    查看api可知,调用wfs有两种方式,一种是采用loader加载,另一种是通过url加载,前者可设置为jsonp的方式可直接解决跨域的问题,后一种需要在服务器端设置跨域。

    loader方式加载

    首先设置vectorSource

        var wfsParams = {
          service: 'WFS',
          version: '1.0.0',
          request: 'GetFeature',
          typeName: 'tongxiang:geo_civil_engineering',  //图层名称     
          outputFormat: 'text/javascript', 
          format_options: 'callback:loadFeatures'  //回调函数声明  
        };
    
        var vectorSource = new ol.source.Vector({
          format: new ol.format.GeoJSON(),
          loader: function (extent, resolution, projection) {  
            var url = 'http://localhost:8082/geoserver/tongxiang/wfs';
            $.ajax({
              url: url,
              data: $.param(wfsParams),   //传参  
              type: 'GET',
              dataType: 'jsonp',   //解决跨域 
              jsonpCallback: 'loadFeatures'  //回调  
    
            });
          },
          strategy: ol.loadingstrategy.tile(new ol.tilegrid.createXYZ({
            maxZoom: 25
          })),
          projection: 'EPSG:4326'
        });
        window.loadFeatures = function (response) {
          vectorSource.addFeatures((new ol.format.GeoJSON()).readFeatures(response));  
        };
    

    添加图层

        var wfsLayer = new ol.layer.Vector({
          source: vectorSource1
        });
        map.addLayer(wfsLayer);
    

    在这里插入图片描述

    url方式加载加载

    设置vectorSource

        var vectorSource1 = new ol.source.Vector({
        // 将参数写在url中,可复制该url,修改部分参数啊
          url: `http://localhost:8082/geoserver/tongxiang/wfs?service=wfs&version=1.1.0&request=GetFeature
                &typeNames=tongxiang:geo_civil_engineering&outputFormat=application/json&srsname=EPSG:4326`,
        // 设置文件格式,geometry_data为矢量源中表示空间位置的字段
          format: new ol.format.GeoJSON({
            geometryName: 'geometry_data'
          })
        });
    

    添加图层

        var wfsLayer = new ol.layer.Vector({
          source: vectorSource1
        });
        map.addLayer(wfsLayer);
    

    3 调用wcs

    openlayer调用wcs服务是通过wms

        var wcsLayer = new ol.layer.Image({
          source: new ol.source.ImageWMS({
            url: 'http://localhost:8082/geoserver/tongxiang/wms',
            params: { 'LAYERS': 'tongxiang:l8Img_SH' },
            serverType: 'geoserver'
          })
        })
        map.addLayer(wcsLayer);
    

    在这里插入图片描述

    三、结尾

    geoserver版本:2.15.2
    geoserver服务器:Jetty
    geoserver介绍:
    wms、wfs、wcs:

  • 相关阅读:
    973. K Closest Points to Origin
    919. Complete Binary Tree Inserter
    993. Cousins in Binary Tree
    20. Valid Parentheses
    141. Linked List Cycle
    912. Sort an Array
    各种排序方法总结
    509. Fibonacci Number
    374. Guess Number Higher or Lower
    238. Product of Array Except Self java solutions
  • 原文地址:https://www.cnblogs.com/asdlijian/p/13514183.html
Copyright © 2020-2023  润新知