본문 바로가기

공간정보/Geoserver7

OGC WMS와 SLD를 활용한 건물 층수 시각화하기 안녕하세요! 오늘은 브이월드 API를 활용하여 건물의 층수를 시각화하는 방법에 대해 알아보겠습니다.WMS 요청 분석https://api.vworld.kr/req/wms?SERVICE=WMS&REQUEST=GetMap&VERSION=1.3.0&LAYERS=lt_c_spbd&STYLES=&CRS=EPSG:900913&BBOX=14133818.022824,4520485.8511757,14134123.770937,4520791.5992888&WIDTH=256&HEIGHT=256&FORMAT=image/png&TRANSPARENT=false&BGCOLOR=0xFFFFFF&EXCEPTIONS=text/xml&KEY=브이월드인증키&DOMAIN=localhost&SLD_BODY=%3C%3Fxml+version%3D%2.. 2024. 11. 22.
Geoserver WMS 라벨 스타일(TextSymbolizer) 설정 팁 WMS 스타일 중 텍스트 라벨을 표시하기 위해서는 TextSymbolizer 설정을 하면 됩니다. Geoserver TextSymbolizer 레퍼런스 페이지에 자세한 설명과 예시가 나와있습니다. 오늘의 팁은 Geometry 부분에 적용 가능한 옵션입니다. WMS 서비스 사용에서 성능 개선, 사용성 등의 목적으로 256x256 또는 512x512 사이즈로 지도를 타일처럼 조각 조각 요청하는 경우가 있습니다. 이럴 경우, 아래 그림처럼 하나의 다각형 도형에 한 번이상 라벨이 출력되어 보기 싫은 상황이 발생합니다. 이런 상황을 해결하는 방법은 크게 2가지로 첫번째 해결방법은 타일 단위로 요청하지 않고 화면 크기만큼 그때 그때 요청하는 것입니다. 이렇게 하나의 커다란 이미지로 요청하면 라벨이 중복 표시되는 것.. 2022. 1. 8.
Geoserver 스타일(SLD) 작성 팁 Geoserver WMS 지도 서비스 중 레이어 스타일은 SLD(Styled Layer Descriptor)로 지정합니다. 점, 선, 면, 마커, 라벨 등 지도로 표현되는 그래픽을 SLD xml 스키마에 따라 작성해서 스타일을 지정할 수 있습니다. 하지만, 이 XML 스키마라는 것이 무지하게 복잡합니다. 그래서 가장 손쉽게 작성할 수 있는 방법은 QGIS를 이용하는 것입니다. 아래 그림에서 처럼, QGIS의 레이어 속성 > 심볼 설정을 통해 스타일을 지정하면 바로 확인이 가능합니다. 이렇게 레이어 스타일 설정이 끝나면 WMS에서 사용하는 SLD 스타일 파일로 저장 할 수 있습니다. 레이어 속성 > 심볼 설정 하단에 보이는 스타일 버튼을 누르면 "스타일 저장..." 메뉴가 표시됩니다. 이때 스타일 저장 형.. 2022. 1. 7.
Geoserver REST API를 이용한 스타일(SLD) 업데이트 팁 Geoserver는 웹 브라우저를 통해 관리 화면을 제공합니다. 또한 REST API를 이용해 명령 창 인터페이스(CLI, Command line interface)를 통해 관리가 가능합니다. 여러가지 중 이 글에서는 cURL을 이용해서 style(SLD)를 내려받고 업로드 하는 방법을 알려드립니다. # Style 다운로드 방법 curl -v -u admin:geoserver -GET http://127.0.0.1:8080/geoserver/rest/workspaces/{workspace 이름}/styles/{스타일 이름}.sld -o {다운로드 받을 스타일 파일 이름}.sld 예를 들어, cite workspace에 building 이라는 스타일을 다운로드 받는 법은 curl -v -u admin:ge.. 2022. 1. 7.
Geoserver SQL View 관련 팁 Geoserver는 파라미터 기반으로 동적 뷰 레이어를 만들 수 있는 SQL View 기능을 제공하고 있습니다. select gid, state_name, persons, geom from pgstates where persons between %low% and %high% 위와 같은 SQL View를 만들면 %low% 와 %high% 부분을 WMS, WFS 요청 시 동적으로 지정해서 결과를 받아볼 수 있습니다. 이렇게 정의한 SQL View에 해당 파라미터를 전달하는 방법은 WMS 또는 WFS 요청 파라미터에 viewparams을 추가하는 겁니다. 예를 들면, Lefleat에서 다음과 같이 사용할 수 있습니다. var layer = L.tileLayer.wms(geoserverWMSUrl, { "ver.. 2022. 1. 6.
Geoserver cross-origin 허용 설정 Geoserver도 하나의 웹 서버(서비스)이므로 하나의 웹 페이지에서 여러 서버의 자원을 활용하기 위해서 교차 출처 리소스 공유(CORS) 설정이 필요할 때가 있습니다. Geoserver를 설치하면 WEB-INF/web.xml 파일이 있습니다. 처음 설치하면 corss-origin 관련 설정이 아래 그림처럼 주석 처리되어 있습니다. 자세히 보면 위 아래로 비슷한 설징이 되어 있는데, 설명을 보면 윗쪽은 jetty의 CrossOriginFilter 를 사용했고 아랫쪽은 tomcat의 CorsFilter 를 사용할 때 필요한 설정입니다. Geoserver를 다운받는 방법 중 standalone 또는 installer 를 사용할 경우, 단순히 주석부분을 해제하고 재시작하면 cross-origin이 적용됩니다.. 2022. 1. 6.