2017-02-27 4 views
3

以下の問題を解決してください。私はPostGISデータベースでホストされているデータを使って、ジオサーバーからのデータをフィルタリングするリーフレットにCQLフィルタを作成したいと思います。リーフレットにcqlフィルタを作成する

たとえば、データベースの[名前]フィールドからリザーバ名を選択します。入力ダイアログフィールドで異なる名前を入力できるため、フィルタは可変です。

レイヤをWMSとして表示していますが、私はopenlayers 3で動作するインタラクティブフィルタを取得できましたが、まだリーフレットに似ていませんでした。

私はGISのWeb開発面で慣れていません。正しい方向のヘルプやポインタは非常に高く評価されます。

敬具、 キャメロン

+0

こんにちはキャメロンさん、あなたが作業しているコード(たとえばjsfiddleなど)を投稿してください。これにより、人々があなたを助けやすくなります。また、あなたが試したことを具体的に記述してみてください(あなたのコードを参考にして理想的に)。 –

答えて

0

リーフレットでは、マップ上のWMSレイヤをプロットするためにTileLayer.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など

しかしnon-standard WMS parameterをサポートするために、URL内のすべての余分なパラメータ/オプションを送るリーフレット。 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" 
}); 
0

これが私の最初の時間は、フォーラムに投稿されており、すでに私は大きな助けを受けています!

私は以下のように自分のコードの中に提案されているよう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> 

しかし、私は、ユーザーが入力できる値を受け入れるようにcql_filterに「myInput」を渡して立ち往生しています。

私はcql_filterを格納している関数を作成しようとしましたが、WMSを読み込むときにこれをcql_filterオプションに呼び出すことはできません。

関連する問題