使用Cesium加载Geoserver发布的WMTS服务并获取属性

38 篇文章 ¥59.90 ¥99.00
本文介绍了如何使用Cesium JavaScript库加载Geoserver发布的WMTS服务,展示地理空间数据,并通过点击地图获取属性信息。提供源代码示例,包括创建Cesium Viewer、设置WMTS图层以及实现属性查询功能。

在本文中,我们将探讨如何使用Cesium JavaScript库加载Geoserver发布的WMTS(Web Map Tile Service)服务,并通过点击地图来获取属性信息。我们将提供相应的源代码示例,以便您可以轻松地实现这一功能。

首先,让我们了解一下WMTS服务是什么。WMTS是一种用于在Web上提供地图瓦片的标准化协议。它允许我们以瓦片形式获取地理空间数据,并在网页上进行展示。Geoserver是一个流行的开源地理数据服务器,支持WMTS协议,并且可以发布地图瓦片服务。Cesium是一个用于创建地球、地图和其他地理可视化应用的JavaScript库。

在开始之前,请确保您已经安装了Cesium库,并且可以通过引入相应的JavaScript文件来使用它。现在,让我们来看看如何加载Geoserver发布的WMTS服务并获取属性。

// 创建Cesium Viewer
var viewer = new Cesium.Viewer('cesiumContainer'
Cesium加载Geoserver发布wmts服务有以下两种常见方法: ### 方法一 可以通过`Cesium.WebMapTileServiceImageryProvider`来加载wmts瓦片服务,示例代码如下: ```javascript //wmts瓦片服务 viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({ url: 'http://localhost:9001/geoserver/gwc/service/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0' + '&LAYER=shp:pm25bj&STYLE=&FORMAT=image/png&TILEMATRIXSET=EPSG:900913&TILEMATRIX=EPSG:900913:{TileMatrix}&TILECOL={TileCol}&TILEROW={TileRow}', //服务地址 maximumLevel: 20 })); ``` 此代码中,`url`为wmts服务的地址,`maximumLevel`指定了最大的缩放级别 [^2]。 ### 方法二 在Geoserver欢迎界面点击右侧WMTS服务,打开xml文件,找到要发布的图层,复制url(Geoserver版本不同url结构略有差异)。修改url,将`{TileMatrix}`改为`{TileMatrixSet}:{TileMatrix}`。若选择EPSG:4326,还需要添加`tilingScheme: new Cesium.GeographicTilingScheme()` 。示例代码如下: ```javascript let wmtsImageryProvider = new Cesium.WebMapTileServiceImageryProvider({ url: "http://localhost:8090/geoserver/gwc/rest/wmts/Cesium:S40PGWGS1984/{style}/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png", style: "", tileMatrixSetID: "EPSG:900913", // tileMatrixSetID: "EPSG:4326", // tilingScheme: new Cesium.GeographicTilingScheme(), }); viewer.imageryLayers.addImageryProvider(wmtsImageryProvider); ``` 若加载后控制台报错401,网页弹出登录Geoserver账号界面,是因为未进行用户名密码验证,请求头中没有传入授权验证。可关闭Geoserver请求的过滤器,在`Security->Authentication->Filter Chains`中删除`gwc`过滤器;也可以在请求头中添加用户名密码,参考https://blog.youkuaiyun.com/weixin_42047398/article/details/107400129 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值