[Openlayers] getGetFeatureInfoUrl 함수 사용Language/JavaScript2022. 9. 1. 20:27
Table of Contents
반응형
Geoserver에서 필요한 정보를 가져오기 위해 OpenLayers의 getGetFeatureInfoUrl
함수를 사용하였습니다.
feature의 정보 중에 GRAY_INDEX 라는 컬럼의 정보를 가져와야 합니다.
아래 방식으로 image 형태인 layer 를 구성하였습니다.
var wmsLayer = new ol.layer.Image({
source: new ol.source.ImageWMS({
ratio: 1,
url: 'http://localhost:8080/geoserver/img/wms',
params: {
FORMAT: 'image/png',
VERSION: '1.1.1',
STYLES: '',
},
}),
});
getGetFeatureInfoUrl
함수를 사용하여 feature 정보를 불러와 표출하였습니다.
아래에서 url 에 요청할 때 Cross-Origin Read Blocking(CORN) 문제가 있어 ajax 대신 XMLHttpRequest를 사용하였습니다.
var url = wmsLayer.getSource().getGetFeatureInfoUrl([longitude, latitude], view.getResolution(), view.getProjection(), {
INFO_FORMAT: 'application/json',
FEATURE_COUNT: 10,
QUERY_LAYERS: imageLayers,
LAYERS: imageLayers,
});
if (url) {
var parser = new ol.format.GeoJSON();
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === xhr.DONE) {
// 요청이 완료되면
if (xhr.status === 200 || xhr.status === 201) {
var result = parser.readFeatures(xhr.responseText);
if (result.length) {
var info = result[0].get('GRAY_INDEX');
$('#measurement_text').text(
'Val: ' + info + ', Lon: ' + longitude.toFixed(3) + ', Lat: ' + latitude.toFixed(3)
);
}
}
}
};
xhr.open('GET', url);
xhr.send();
}
반응형
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] String형 Bytes length 구하기 (0) | 2022.09.22 |
---|---|
[JQuery] DataTables 사용 방법 (0) | 2022.09.13 |
[Cesium] 개발 팁 (0) | 2022.09.01 |
[JavaScript] 우편번호 주소 조회 (0) | 2022.08.27 |
[JavaScript] 전화번호 하이픈(-) 자동입력 (1) | 2022.08.27 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!