使用 Cesium 在 Geoserver 上无法获取(找不到正确的 url)Tile 层
Posted
技术标签:
【中文标题】使用 Cesium 在 Geoserver 上无法获取(找不到正确的 url)Tile 层【英文标题】:Cant get (can't find proper url) for Tile's layer on Geoserver using Cesium 【发布时间】:2015-12-25 17:39:40 【问题描述】:首先,我最近在使用 OpenLayers 和 Cesium。
我将我的地理服务器设置在:
localhost:8200/geoserver
在我的地理服务器上,我的工作区名称为:
SrbijaAdmGranice
并以名称分层到该工作区:
SRB_AdministrativneGranice_Level2_3909
问题是什么,当我尝试使用此代码添加 WMS 层 - WebMapServiceImageryProvider 时:
var viewer = new Cesium.Viewer('cesiumContainer');
// Add a WMS imagery layer
var imageryLayers = viewer.imageryLayers;
imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider(
url : 'http://localhost:8200/geoserver/wms',
layers : 'SrbijaAdmGranice:SRB_AdministrativneGranice_Level2_3909',
parameters :
transparent : true,
format : 'image/png'
));
我得到了很好的结果 - 图片如下: Result Picture
有什么问题。
问题是,我在我的 Geoserver 中访问了 Tile Layers,并在适当的网格集中找到了 SEED 切片。 当转到 Tile Layers 时,我会得到带有可能网格集的图层。 当我去预览时,我得到这个链接:
http://localhost:8200/geoserver/gwc/demo/SrbijaAdmGranice:SRB_AdministrativneGranice_Level2_3909?gridSet=EPSG:4326&format=image/png
结果如下: Result Picture
问题是,当我想添加 WebMapTileServiceImageryProvider 时,我在控制台中得到了无法获取 Tile 的结果。
这是我使用的代码:
imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider(
url : 'http://localhost:8200/geoserver/gwc/service/wms?',
layer : 'SrbijaAdmGranice:SRB_AdministrativneGranice_Level2_3909',
style : 'default',
format : 'image/jpeg',
tileMatrixSetID : '4326', // is this a GridSet Atribute?
maximumLevel: 19,
credit : new Cesium.Credit('U. S. Geological Survey')
)
);
我的问题是 - 什么是正确的 URL 值? 以及其他参数。
我尝试了所有可能的组合。
请帮忙。
【问题讨论】:
我找到了解决方案。事实上,不需要任何并发症。我在 openlayers 3 上看到了一些关于平铺地图的示例。整个故事只是在一个参数 tiled : true, gridset = 'proper grid set' in parameters objectvar imageryLayers = viewer.imageryLayers; imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider( url : 'http://localhost:8200/geoserver/SrbijaAdmGranice/wms', layers : 'SrbijaAdmGranice:SRB_AdministrativneGranice_Level2_3909', parameters : transparent : true, format : 'image/png', tiled : true, gridSet : 'Serbia 3909' ));
您应该将您的评论更改为答案。
@emackey 怎么做?
只需复制并粘贴到答案框中。如果您愿意,您可以在发布后删除评论。
【参考方案1】:
我找到了解决方案。事实上,不需要任何并发症。我在 openlayers 3 上看到了一些关于平铺地图的示例。整个故事只是在一个参数 tiled 中:true, gridset = 'proper grid set' in parameters object
var imageryLayers = viewer.imageryLayers; imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider( url : 'http://localhost:8200/geoserver/SrbijaAdmGranice/wms', layers : 'SrbijaAdmGranice:SRB_AdministrativneGranice_Level2_3909', parameters : transparent : true, format : 'image/png', tiled : true, gridSet : 'Serbia 3909' ));
【讨论】:
以上是关于使用 Cesium 在 Geoserver 上无法获取(找不到正确的 url)Tile 层的主要内容,如果未能解决你的问题,请参考以下文章
cesium 结合 geoserver 实现地图属性查询(附源码下载)
cesium结合geoserver实现地图空间查询(附源码下载)
cesium结合geoserver利用WFS服务实现图层编辑(附源码下载)