저는 하나의 래스터 파일 (GeoTIFF)이있는 Geoserver (2.5.x)를 레이어로 실행 중입니다. 내 응용 프로그램에서 (WMS를 통해) 클릭 할 때 단일 픽셀 값에 액세스 할 수 있지만 실제로 관심이있는 것은 픽셀 범위를 얻은 다음 그 중 일부 처리를 수행하는 것입니다. 내가 그것을 생각하고 있었던 방법은 MOD_CTRL을 트리거로 사용하여 컨트롤을 만든 다음 드래그가 끝나면 선택한 범위를 지오 서버에 전달하여 픽셀 값 목록을 다시 가져올 수있게하는 것이 었습니다. 단 하나의 픽셀 -geoserver 및 openlayers는 직사각형 픽셀 값을 선택합니다.
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);
}
내가 직면하고있어 문제는 내가 "범위"를 통과 할 수있는 방법을 찾을 수가 없어 수있는 geoserver에 (leftBottom, rightTop)입니다. 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
});
}
어떤 도움이 정말 감사하겠습니다 ...
이 기능은 전화를 걸 것으로 보인다하지만 서비스 또는 매개 변수를 사용하는 확실하지 않다.