javascript - 如何使用在 Leaflet 中定义为 SQL 视图的 GeoServer 图层的 viewParams 选项?
问题描述
我设置了一个 PostGIS 数据库,我通过参数化的 SQL 视图在 GeoServer 中添加了该数据库。我设置的参数是 'year' :它只允许选择我的数据库中以今年为属性的多边形。
我知道这很有效,因为我可以通过本地链接在我的图层上成功使用 GeoServer 的图层预览:http://localhost:9999/geoserver/cite/wms?service=WMS&version=1.1.0&request=GetMap&viewParams=year:0&layers= cite%3Achoix_annee&bbox=-56.6015625%2C25.16517336866393%2C-16.875%2C47.040182144806664&width=768&height=422&srs=EPSG%3A404000&styles=&format=application/openlayers
有趣的选项是“viewParams=year:0”。
在 Leaflet 中,我使用以下代码通过 wms 导入我的图层:
<script>
// Find our map id
var map = L.map('map');
var wmsLayer = L.tileLayer.wms('/geoserver/gwc/service/wms', {
layers: 'cartowiki:choix',
format: 'image/png',
transparent: true,
viewparams: 'year:1000'
}).addTo(map);
// Set the map view
map.setView([46.988332, 2.605527], 2);
</script>
它第一次起作用,但随后 GeoWebCache 干预并阻止我获得适合我所要求的年份的结果,它总是给我所要求的第一年的结果。我试图在我的图层的切片缓存模块中使用正则表达式指定年份参数,但它不起作用,我不知道为什么。
这是我在 geoserver 中的设置视图:geoserver settings
谢谢,
解决方案
推荐阅读
- php - 从 HTML 中的 JSON 对象格式化 PHP 数组
- java - 如何将数据插入到关系实体内部对象中?
- java - 在 Google Dataflow 模板中添加对 JS UDF 的支持
- php - Yii2基本模式不调用main.php
- javascript - 在 es6 中为反应状态添加不推送的行
- angular - 如何在没有应用按钮的情况下使用angular6中的角度材料过滤价格范围
- c - 在c中的两次执行之间故意更改随机内存位置
- java - RestController 中的 Spring RequestMapping 返回 406
- javascript - 在编辑器中上传图片 - 最佳方法?
- sql-server - 根据利率和投资方式计算每月利息