首页 > 解决方案 > 如何使用在 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

谢谢,

标签: javascriptleafletgeoserverwms

解决方案


推荐阅读