1. 작업공간
: 레이어, 스타일을 저장할 폴더
2. 저장소 생성
: 연결할 db 정보 입력
: 이 곳을 통해 이미지의 feature를 알 수 있다.
: user, password - DB의 비번을 적어주는 것임. (pgAdmin 접속시 비번이 아니라)
3. 레이어 생성
Layer란 : feature정보(공간정보)를 나타내는 정보다.
✔️3-1) 새로운 SQL뷰 설정하기
나의 경우는 db에 geometry 데이터가 직접 담겨있는게 아니라, 프론트에서 그 데이터로 geom데이터를 만들어서 써야하기 떄문에 직접 db를 조회하는 sql문을 써야한다.
이 방식으로 하면 db 뷰에서 쿼리를 복잡하게 짜지 않아도 되고, 쿼리에 매개변수를 받을 수 있다.
✔️3-2) sql 문 작성
4. 스타일
✔️ 4-1) 스타일 코드 작성
✔️4-2) 적용할 레이어 선택
<세부설명>
1. 공간 좌표 체계(Coordinate Reference Systems)
- 좌표계 : 지리적 객체를 위치시키기위해 사용되는 좌표 체계
- 공간 참조 시스템(SRS)
- 좌표 참조 시스템(CRS) : 공간 데이터가 지구 표면에 실제 위치와 관련되는 방법을 정의
- 원본 데이터 좌표체계 (Native SRS)
- 정의한 좌표체계(Declared SRS) : 클라이언트에 특정해 준 좌표
- 좌표체계 처리 방식 : native srs와 declared srs가 다를때 어떤 걸 따를지 결정하는 방식
- 강제 선언 : 일반적으로 사용
- 네이티브에서 재투영 : 소스 데이터가 EPSG 코드와 일치하지 않는 경우만 사용
- 기본설정 유지 : 드물게 사용됨.
2. Bounding Boxes
위에서 지정한 srs handling 방식에 따라 데이터 범위 계산
3. Layer - SQL 뷰 편집
✔️ 3-1) SQL문 작성
✔️ 3-2) SRID 설정
: 공간 쿼리가 제대로 작동하려면 올바른 SRID(공간참조 ID)가 있어야 한다.
: SRID는 srs의 EPSG 코드와 동일하지만, 아닐 때도 있어서 제대로 잘 작성해줘야 한다.
: GeoServer는 지오메트리 컬럼 타입으로 기본 SRID를 결정하려고 하지만 필요한 경우 이를 확인하고 수정해야 한다.
✔️ 3-3) SQL 파라미터
- viewparams를 사용하여 필요한 파라미터를 wms에서 geoserver로 동적으로 보내줄 수 있다.
- 파라미터가 입력되지 않은 경우가 있을 수 있어 defaul값을 지정해줘야 오류나지 않는다.
[wms(vl) 에서 파라미터 보내는 형태]
파라미터가 여러개 일때 - viewparams: k1:v1; k2:v2; k3:v3;
값에 세미콜론이나 쉼표가 포함된 경우 백슬래시(\)로 이스케이프해야 함 - viewparams: k1:1\,2\,3\,4\,5; k2:v2; k3:v3;
[예제1]
low ~ high 사이의 persons만 조회. low,high가 파라미터이고 vl-source-wms의 vieparams에서 파라미터 값을 입력해준다.
// SQL문
SELECT * FROM pgstates
WHERE persons BETWEEN %low% and %high%
// 프론트
<vl-layer-tile>
<vl-source-wms
url="http://localhost:5432"
layers='store_name:layer_name'
:extParams="{
version: '1.3.0',
format: 'image/png',
layers: 'store_name:layer_name',
viewparams: `low:0;high:99` // !! 파라미터 값 주입
}"
>
</vl-source-wms>
</vl-layer-tile>
[예제2]
// SQL문
SELECT * FROM pgstates WHERE product_id in (%buy_id%)
// 프론트
<vl-layer-tile>
<vl-source-wms
url="http://localhost:5432"
layers='store_name:layer_name'
:extParams="{
version: '1.3.0',
format: 'image/png',
layers: 'store_name:layer_name',
viewparams: 'buy_id: 1\\,2\\,3\\,4\\,5' // !! 파라미터 값 주입
}"
>
</vl-source-wms>
</vl-layer-tile>
4. 스타일 작성법
별도 포스팅
참고자료
https://docs.geoserver.org/2.23.x/en/user/data/webadmin/layers.html
https://docs.geoserver.org/2.23.x/en/user/data/database/sqlview.html
'GIS' 카테고리의 다른 글
Postgis 공간함수 (1) | 2023.05.22 |
---|---|
[geoserver] docker로 geoserver 설치하기 (0) | 2023.05.18 |