【问题标题】:Contouring function with OpenLayers3/GeoServerOpenLayers3/GeoServer 的轮廓功能
【发布时间】:2016-05-19 13:04:33
【问题描述】:
我们在我们的数据库中存储栅格,并且我们希望在我们的网络应用程序中实现一个功能,该功能将允许用户根据栅格向地图添加等高线。我们希望用户能够自定义轮廓级别和颜色。
有人知道我应该使用哪些工具吗?我觉得应该是用GeoServer的Python脚本扩展,但是不知道这样的功能能不能实现。
感谢您的 cmets!
【问题讨论】:
标签:
javascript
python
scripting
openlayers
geoserver
【解决方案1】:
从 GeoServer 中的栅格数据源动态创建轮廓的最简单方法是使用渲染转换 gs:Contour。在documentation 中有一个full example。这显示了如何使用 SLD 文件来指定轮廓值,然后在渲染时提取这些值并使用 SLD 文件的其余部分进行绘制。该示例假设使用静态文件的一组固定轮廓,这是最简单的。
但是WMS standard 允许客户端(OpenLayers)向upload a new SLD file 发送地图请求 - 这正是您想要在此处执行的操作。我建议您生成一个工作 SLD 文件,然后使用您选择的模板引擎将用户选择的值插入到文件中,然后再将其发送到 GeoServer 进行处理。这样做的缺点是您需要在每个请求中发送 SLD 文件,并且平铺可能无法正常工作(完全?)。您可以通过使用library mode 来加快速度,但可能会使客户端复杂化。