レイヤーとして 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
});
}
どんな助けでも本当に感謝しています。