請幫我解決以下問題。我想在小冊子中創建一個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中)。這使人們更容易幫助你。此外,嘗試具體描述您嘗試過的內容(理想地引用您的代碼)以及哪些內容無效。 –