请帮我解决以下问题。我想在小册子中创建一个CQL过滤器,过滤来自GeoServer的数据,并将数据托管在PostGIS数据库中。在小册子中创建一个cql过滤器
例如,从数据库的NAME字段中选择一个油藏名称。过滤器将是可变的,因为用户可以通过输入对话框字段输入不同的名称。
我将图层显示为WMS,尽管我能够在openlayers 3中获得交互式过滤器,但我仍然不喜欢使用传单。
我对GIS的web开发方面很陌生,任何帮助或指针都会朝着正确的方向发展,我们将不胜感激。
亲切的问候, 卡梅伦
请帮我解决以下问题。我想在小册子中创建一个CQL过滤器,过滤来自GeoServer的数据,并将数据托管在PostGIS数据库中。在小册子中创建一个cql过滤器
例如,从数据库的NAME字段中选择一个油藏名称。过滤器将是可变的,因为用户可以通过输入对话框字段输入不同的名称。
我将图层显示为WMS,尽管我能够在openlayers 3中获得交互式过滤器,但我仍然不喜欢使用传单。
我对GIS的web开发方面很陌生,任何帮助或指针都会朝着正确的方向发展,我们将不胜感激。
亲切的问候, 卡梅伦
在单张使用TileLayer.WMS对地图绘制WMS层。像这样:
var nexrad = L.tileLayer.wms("http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi", {
layers: 'nexrad-n0r-900913',
format: 'image/png',
transparent: true,
attribution: "Weather data © 2012 IEM Nexrad"
});
你看到一些标准单张WMS选项有喜欢的格式,版本..crs等
但小叶把所有额外的参数/选项中的URL来支持non-standard WMS parameter。 CQL_FILTER就是其中之一,所以你需要做的是供应cql_filter选项(列名称是区分大小写):
var nexrad = L.tileLayer.wms("http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi", {
layers: 'nexrad-n0r-900913',
format: 'image/png',
transparent: true,
cql_filter: 'NAME=filterhere'
attribution: "Weather data © 2012 IEM Nexrad"
});
这是我第一次发布到论坛,我已经收到了很大的帮助!
我设法得到cql_filter我的代码如下建议的范围内:
var contours = L.tileLayer.wms('http://gis01-dbn:8080/geoserver/Inyaninga_243-198/wms', {
layers: 'Inyaninga_243-198:contours_3857',
format: 'image/png',
transparent: true,
cql_filter: 'elevation= 126',
});
有任何不过的方式,使这个标高参数,接收用户输入和更新?
我创建的HTML表单这样:
<form>
Elevation(m):<br>
<input type="text" id="myInput">
<input type="button" value="Elevation">
</form>
不过,我越来越坚持通过“myInput”到cql_filter接受,用户可以输入一个值。
我已经尝试创建一个函数住房的cql_filter,但再次加载WMS时不能再调用这个到cql_filter选项。
Hello Cameron,请尝试发布您正在使用的代码(例如,在jsfiddle中)。这使人们更容易帮助你。此外,尝试具体描述您尝试过的内容(理想地引用您的代码)以及哪些内容无效。 –