GIS프로그래밍/GeoServer
[Geoserver]-레이어 범례 가져오기
슬래기
2024. 10. 3. 15:06
지오서버 레이어 범례 모두 가져오기
지오서버에 발행된 특정 범례를 시스템에서 표출할 일이 있다면 지오서버에서 제공해주는 API(GetLegendGraphic)를 이용하면 된다.
http://xxxxxxxx/geoserver/wms?REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=24&HEIGHT=24&STRICT=false&
style=${지오서버 작업공간}:{레이어 이름}
지오서버 레이어 특정 범례 가져오기
지오서버에 전체 범례가 아닌 특정 rule에 해당하는 범례를 가져오고 싶을 경우가 있다.
지오서버에 스타일을 적용했다면 sld에 rule name이 존재할 것이다.
http://xxxxxxxx/geoserver/wms?REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=24&HEIGHT=24&STRICT=false&
style=${ 지오서버 작업공간 }:{레이어 이름}&rule=${rule}
내가 만든 javascript util을 공유.
export const getLegend = (rule) => {
const styleNm = '저장소:레이어이름';
const proxyUrl = `${window.location.origin}/proxy/proxyUrl.jsp?url=`;
const geoserverUrl = process.env.GEOSERVER_URL;
const geoserverParam = `/geoserver/wms?REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=24&HEIGHT=24&STRICT=false`;
const src = `${proxyUrl}${geoserverUrl}${geoserverParam}&style=${styleNm}&rule=${rule}`;
return src;
};