如何在 Cesium Sandcastle 中为 Geoserver WMS Get 请求启用跨源资源共享(CORS)

How to enable cross origin resource sharing (CORS) in Cesium Sandcastle for Geoserver WMS Get request

我正在尝试用 localhost:8080 geoserver 上的数据在 cesium sandcatle 中进行测试和练习。

This picture will explane everything

另外,我想问一下,"how to get a list of GeoServer layers loaded into the Cesium BaseLayerPicker" 从示例 http://localhost:8080/geoserver/masterrad/wfs?request=GetCapabilities 给出 XML 文件,在工作区 'masterrad' 中可能有层。如何从 XML 中提取名称并放入 BaseLayerPicker

谢谢

我认为这可能是两个不相关的问题,但我会尽力回答这两个问题。

您可以使用 CORS 过滤器插件在 Geoserver 中启用 CORS: http://software.dzhuvinov.com/cors-filter-installation.html

关于你的第二个问题,Cesium 没有内置查询 WFS GetCapabilities 的支持,但是 TerriaJS 有: https://github.com/TerriaJS/terriajs

TerriaJS 是一个建立在 Cesium 之上的开源库,最初是为澳大利亚的 NationalMap 开发的,后来被用于许多其他项目。对于不能 运行 Cesium 的系统,TerriaJS 还可以回退到 Leaflet。在您的服务器上运行 CORS 后,访问 nationalmap.gov.au(站点 运行ning TerriaJS),单击添加数据,输入您的 WFS URL,您应该会看到服务器的所有图层都出现了在数据目录的底部。