1

レイヤーとして 1 つのラスター ファイル (GeoTIFF) を使用してジオサーバー (2.5.x) を実行しています。私のアプリケーションから、(WMS を介して) クリックすると単一のピクセル値にアクセスできますが、私が本当に興味を持っているのは、ピクセルの範囲を取得して、それに対して何らかの処理を行うことです。私が考えていた方法は、MOD_CTRL をトリガーとしてコントロールを作成し、ドラッグが終了したら、選択した範囲を geoserver に渡して、ピクセル値のリストを取得できるようにすることでした。

    OpenLayers.Util.extend(control, {
      draw: function () {
          this.drag = new OpenLayers.Handler.Box( control,
              {"done": this.notice},
              {keyMask: OpenLayers.Handler.MOD_CTRL});
          this.drag.activate();
      },

      notice: function (bounds) {
        leftBottom = map.getLonLatFromPixel(new OpenLayers.Pixel(bounds.left, bounds.bottom)); 
        rightTop = map.getLonLatFromPixel(new OpenLayers.Pixel(bounds.right, bounds.top));
        console.log(leftBottom, rightTop);
        return(true);
      }

私が直面している問題は、「範囲」(leftBottom、rightTop) をジオサーバーに渡す方法が見つからないように見えることです。1 つのピクセルのみです。leftBottom と rightTop は問題なく動作しますが、ピクセル値のリストを取得するにはどうすればよいですか?

この関数は呼び出しを行っているようですが、使用するサービスまたはパラメーターがわかりません...

 function makeCall(bounds) {

   var url = sec.getFullRequestString({
                                          REQUEST: "GetFeature",
                                          SERVICE: "WFS", //should this be WPS?
                                          EXCEPTIONS: "application/vnd.ogc.se_xml",
                                          typeNames: 'mystore:mylayer',
                                          BBOX: bounds.toBBOX(),
                                          INFO_FORMAT: 'text/plain',
                                          QUERY_LAYERS: layerlist,
                                          FEATURE_COUNT: 50,
                                          WIDTH: map.size.w,
                                          HEIGHT: map.size.h,
                                          format: 'image/png',
                                        },
                                        "http://localhost:8080/geoserver/wfs");

    var request = OpenLayers.Request.GET({
      url: url,
      callback: extractFeatures
    });
  }

どんな助けでも本当に感謝しています。

4

1 に答える 1

0

WMS には四角形のピクセル範囲を取得する方法がありません。WCS を使用するか、最終的にはカスタム WPS プロセスを使用する必要があります。

于 2014-10-15T12:06:36.217 に答える