2009-08-25 7 views
2

マップファイルに空間フィルタを設定して、WMSやWFSだけでなく通常の要求で使用する方法があるかどうかは誰でも知っていますか?私たちのシステム上のこれらのフィルタは動的なものなので、この空間フィルタは矩形だけでなくあらゆる種類のポリゴンである必要があります。ユーザーはポリゴンを描画したり、ポリゴンレイヤーから選択することができます。ユーザーがマップ機能なしで従来のデスクトップアプリケーションを使用し、画像用のMapserverのみを要求するシステムなので、Mapserver側でこれらのフィルタリングを行う必要があります。Mapserver空間フィルタリング

簡単に言えば、ストリート名(ラベル付き点)や地区(ポリゴン)などのデータ。そのうちの1人は街路番号2に該当する通りだけを見たいかもしれないので、私はMapserverに残りの通りを隠している画像を生成したい。

  • リクエストは、CGI、ないWMSですが、私は場合に変更することができます:もちろん、街頭層に地区を通り

    あなたがこの質問を助けるためにいくつかの事柄配置されているについての情報はありませんそれは私がMapscriptもOpenLayersをのような任意のクライアントまたはuDigを使用していないよ

  • を助け
  • レイヤーが持っていないと私はLAYERセクションのフィルタパラメータについて知っ
  • を属性関係を持っていませんが、それはフィルタリング属性に対してのみです
  • 私は(SLDに含まれる)「フィルタエンコーディング」について読んしかし、それを動作させることができない、私がCQLを見てきましたが、それが直接Mapserverのではサポートされていない、唯一のSLD
のみWFS
  • ためと思われます

    Mapserverで画像生成用の空間フィルタリングを行うにはどうすればよいですか?

    おかげ

  • 答えて

    0

    あなたはバウンディングボックス内の機能を返すために、WMS要求を使用することができます。

    http://my.host.com/cgi-bin/mapserv?map=mywms.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=prov_bound&STYLES=&SRS=EPSG:4326&BBOX=-173.537,35.8775,-11.9603,83.8009&WIDTH=400&HEIGHT=300&FORMAT=image/png

    :要求と同様である

    SRSユニットにバウンディングボックスの角(左下、右上):

    http://mapserver.org/ogc/wms_server.html

    BBOX =ミンクス、MINY、MAXX、MAXYを見ます

    また、(使用している場合は)空間データベースでクエリを作成し、フィーチャIDを渡してフィルタすることもできます。

    1

    これまで知っている限り、空間的/非空間的なクエリを実行する方法は2つあります。 まず、wms call urlのパラメータを使用するなどのフィルタエンコーディングを使用しています。例えばhttp://.../mapserv?map=..&param=value

    これを行うもう1つの方法は、リクエスト本文にフィルタを使用することです。サーバーに後でリクエストを行うことができると仮定すると、1つのフィルターで複雑な空間/非空間クエリーにフィルターを使用できます。詳細については、マップサーバのフィルタページを参照してください。包含、交差など利用可能な複数の空間フィルタ操作があります。

    マップファイル内のフィルタは少し異なりますが、データソース用に事前定義されたフィルタです。これは、顧客からの依頼が来る前でもデータをフィルタリングするロジックがある場合に機能します。(検索OGCフィルタとCQLは現在GeoServer用です)

    SLDはレンダリング時にもデータをフィルタリングします。空間フィルタと非空間フィルタの両方で機能します。しかし、それはgetmap操作だけを反映します。