使用Geoserver1.19.1内置GeoWebCache + openlayers发布并调用Arcgis瓦片步骤总结

使用Geoserver1.19.1内置GeoWebCache + openlayers发布并调用Arcgis瓦片步骤总结

一、版本列表

项目版本
Geoserver2.19.1
GeoWebCache1.19.1(内置)
openlayers

GeoWebCache独立包版本需要与Geoserver内置GeoWebCache对应,测试使用GeoWebCache1.15.1发布的瓦片无法预览。

二、Geoserver内置GeoWebCache配置部署

  • (1)在\webapps\geowebcache\WEB-INF中修改web.xml文件,加入如下内容:
//param-value为缓存存放位置,我自己在data_dir中新建了一个gwccache文件夹
<context-param>
	<param-name>GEOWEBCACHE_CACHE_DIR</param-name>
	<param-value>D:\Program Files\geoserver-2.19.2-bin\data_dir\gwccache</param-value>
</context-param>

重启geoserver后gwccache中多了三个文件

  • (2)此时,在D:\Program Files\geoserver-2.19.2-bin\data_dir\gwccache 的geowebcache.xml的 layers 中添加arcgisLayer节点,但是Geoserver内置gwc不带有发布arcgis瓦片的功能,还需进行如下配置的配置。
<arcgisLayer>
	<name>ahImage</name>
	<tilingScheme>...\conf.xml</tilingScheme>
	<tileCachePath>..\_alllayers</tileCachePath>
	<hexZoom>false</hexZoom>
</arcgisLayer>
  • (3)解压 GeoWebCache1.19.1,将其中的gwc-arcgiscache-1.19.1.jar,放到 geoserver/WEB-INF/lib/目录下去。
    请添加图片描述
  • (4)解压gs-gwc-2.19.1.jar,把 geowebcache-arcgiscache-context.xml 拷贝到 geoserver/WEB-INF/lib/gs-gwc-2.19.1.jar
  • (5)在 geoserver/WEB-INF/lib/gs-gwc-2.19.1.jar/geowebcache-servlet.xml 文件里面增加 :
    <import resource="geowebcache-arcgiscache-context.xml">
    

在这里插入图片描述

  • (6)geoserver/WEB-INF/lib/gs-gwc-2.19.1.jar/geowebcache-core-context.xml 文件里面增加:
<bean id=“gwcArcGISGridsetConfiguration" class="org.geowebcache.arcgis.layer.ArcGISCacheGridsetConfiguration"/>

在这里插入图片描述

  • 重新压缩 gs-gwc-2.19.1 文件夹为zip,修改后缀名为.jar。
  • 重新启动可以预览切片。

三、使用openlayers调用切片

预览后查看网页源码,直接copy调用,可以自己精简一下代码

addImage() {
	const baseUrl = '.../geoserver/gwc/service/wmts';
	const layerName = 'ahImage';
    const style = '';
    const format = 'image/png';
    let projection = new Projection({
      code: 'EPSG:4326',
      units: 'degree',
      axisOrientation: 'neu'
     });
	const resolutions =  [1.40625, 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.145767211914063E-5, 1.072883605957031E-5];
    const gridsetName = 'EPSG:4326_ahImage';
	const gridNames =  ['EPSG:4326_ahImage:0', 'EPSG:4326_ahImage:1', 'EPSG:4326_ahImage:2', 'EPSG:4326_ahImage:3', 'EPSG:4326_ahImage:4', 'EPSG:4326_ahImage:5', 'EPSG:4326_ahImage:6', 'EPSG:4326_ahImage:7', 'EPSG:4326_ahImage:8', 'EPSG:4326_ahImage:9', 'EPSG:4326_ahImage:10', 'EPSG:4326_ahImage:11', 'EPSG:4326_ahImage:12', 'EPSG:4326_ahImage:13', 'EPSG:4326_ahImage:14', 'EPSG:4326_ahImage:15', 'EPSG:4326_ahImage:16', 'EPSG:4326_ahImage:17'];
    const baseParams = ['VERSION','LAYER','STYLE','TILEMATRIX','TILEMATRIXSET','SERVICE','FORMAT'];
	const params = {
      'VERSION': '1.0.0',
      'LAYER': layerName,
      'STYLE': style,
      'TILEMATRIX': gridNames,
      'TILEMATRIXSET': gridsetName,
      'SERVICE': 'WMTS',
      'FORMAT': format
     };
     function constructSource() {
      let url = baseUrl+'?';
      for (let param in params) {
	      if (baseParams.indexOf(param.toUpperCase()) > 0) {
		      url = url + param + '=' + params[param] + '&';
	      }
      }
      url = url.slice(0, -1);
      let source = new WMTS({
          url: url,
	      layer: params['LAYER'],
	      matrixSet: params['TILEMATRIXSET'],
	      format: params['FORMAT'],
	      projection: projection,
	      tileGrid: new WMTSTileGrid({
		      tileSize: [256,256],
		      extent: [-180.0,-270.0,180.0,90.0],
		      origin: [-180.0, 90.0],
		      resolutions: resolutions,
		      matrixIds: params['TILEMATRIX']
	      }),
	      style: params['STYLE'],
	      wrapX: true
        });
      return source;
      }
     let ahImage = new TileLayer({
       source: constructSource(),
       zIndex: 100,
     });
     map.addLayer(ahImage)
  },

结果展示:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
路径分析是指在地理信息系统中,根据给定的起点和终点,在网络数据中找到最佳或最短的路径。在本例中,我们将使用PostgreSQL数据库、GeoServerOpenLayers来实现路径分析。 首先,我们需要将网络数据导入PostgreSQL数据库。我们可以使用PostGIS插件来处理空间数据,它提供了丰富的空间分析功能。将网络数据导入数据库后,我们可以使用SQL查询进行路径分析。 接下来,我们需要将数据库中的数据发布GeoServer中。GeoServer是一个开源的地理信息服务器,它可以将数据库中的空间数据发布Web服务。通过GeoServer,我们可以将网络数据以WMS或WFS的形式发布出去,供OpenLayers进行可视化展示和交互。 最后,我们可以使用OpenLayers来在Web页面中显示地图,并实现路径分析的可视化。OpenLayers是一个开源的JavaScript库,它提供了丰富的地图显示和交互功能。我们可以使用OpenLayers的API来加载GeoServer发布的网络数据,并通过JavaScript代码来实现路径分析的功能。例如,我们可以在地图上绘制起点和终点,并使用OpenLayers的路线计算函数来找到最佳路径,并将其显示在地图上。 在整个过程中,PostgreSQL提供了数据存储和查询的功能,GeoServer提供了数据发布的功能,而OpenLayers提供了地图的可视化和交互功能。通过这些工具的结合,我们可以实现路径分析的功能,从而为用户提供最佳或最短路径的查询和展示。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值