SlideShare a Scribd company logo
1 of 103
가이아쓰리디㈜
장병진 (jangbi882@gmail.com)
2
목차
1. GeoServer 개요
2. GeoServer 설치
3. Data Publishig
4. Map Styling
5. Styling 고급
6. 재미있는 기능들
7. 성능향상 전략
3
1. GeoServer 개요
1.1 GeoServer란?
1.2 GeoServer가 하는 일
1.3 WMS 인터페이스
1.4 WFS 인터페이스
1.5 WCS 인터페이스
1.6 GeoServer의 주요 특징
1.7 지원 포맷 일람
QGIS
• 공간데이터 생산/편집 도구
• 서비스 할 원본 데이터를 만들어 낸다.
Post
GIS
• 공간데이터 관리도구
• 다듬어진 공간데이터를 효과적으로 관리하고 조건에 맞는 데이터를 제공한다.
Geo
Server
• 공간데이터 서비스도구
• 잘 다듬어진 자료를 웹에서 예쁘게 서비스 한다.
Open
Layers
• 웹 GIS 제작용 라이브러리
• 사용자가 웹상에서 공간정보를 편히 사용할 수 있는 UI를 제공한다.
4
5
다양한 공간 Data를
인터넷 GIS 인터페이스로
공급하는 서버 프로그램
6
GeoServer
WMS
WFS
WCS
Vector
Source
Raster
Source
Formatted
Map
Feature
Object
Coverage
Data
png, jpeg, gif
GML, GeoJSON
ArcGrid,
GeoTiff, bmp
Vector Source: Shape, GeoDB
Raster Source: GeoTiff, IMG, ArcGrid
7
Web Map Service
- OGC가 정의한 지도이미지 인터페이스 표준
- 요청방법과 응답형식을 정의
- 지도요청, 카타로그조회, 속성조회 가능
- Http로 요청하고 이미지로 받음
- 필수: GetCapabilities , GetMap
- 옵션: GetFeatureInfo, DescribeLayer,
GetLegendGraphic
* OGC : Open Geospatial Consortium
8
 Web Map Service
-
http://neowms.sci.gsfc.nasa.gov/wms/wms?version=1.1.1&SERVICE=WMS&
REQUEST=GetMap&LAYERS=BlueMarbleNG&FORMAT=image/jpeg&SRS=EP
SG:4326&BBOX=-180,-90,180,90&WIDTH=1000&HEIGHT=500
-
http://neowms.sci.gsfc.nasa.gov/wms/wms?version=1.1.1&SERVICE=WMS&R
EQUEST=GetMap&LAYERS=MOD_LSTN_CLIM_M&FORMAT=image/jpeg&SR
S=EPSG:4326&BBOX=124,34,131,40&&WIDTH=600&HEIGHT=600
-
http://neowms.sci.gsfc.nasa.gov/wms/wms?version=1.1.1&SERVICE=WMS&R
EQUEST=GetMap&LAYERS=MOD14A1_M_FIRE&FORMAT=image/jpeg&SRS
=EPSG:4326&BBOX=-180,-90,180,90&&WIDTH=1000&HEIGHT=500
-
http://61.43.91.120:8080/geoserver/wms?LAYERS=STD_LINK&SRS=EPSG%3
A4326&TILED=false&ISBASELAYER=false&FORMAT=image%2Fgif&TRANSPAR
ENT=true&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&E
XCEPTIONS=application%2Fvnd.ogc.se_inimage&BBOX=125.420951,33.9194
28,129.376029,38.671569&WIDTH=480&HEIGHT=800
9
 Web Feature Service
- OGC가 정의한 지리적 피처(Feature)인터페이스
표준
- 요청방법과 응답형식을 정의
- 피처요청, 카타로그조회, 속성조회 가능
- Http로 요청하고 XML, GeoJSON 등으로 받음
- 필수: GetCapabilities , DescribeFeatureType ,
GetFeature
※Feature = Geometry + attiribute
10
 Web Feature Service
-
http://www.openlayers.org/dev/examples/strat
egy-paging.html
http://www.openlayers.org/dev/examples/wfs-
states.html
- http://www.openlayers.org/dev/examples/wfs-
snap-split.html
- http://www.openlayers.org/dev/examples/wfs-
spatial-filter.html
11
Web Coverage Service
- OGC가 정의한 커버리지 인터페이스 표준
- 요청방법과 응답형식을 정의
- 커버리지요청, 카타로그조회 가능
- Http로 요청하고 래스터 파일로 받음
- 필수: GetCapabilities , DescribeCoverage ,
GetCoverage
※Coverage = 좌표가 있는 Raster Data
12
 Web Coverage Service
- http://demo.mapserver.org/cgi-
bin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=GetCa
pabilities
- http://demo.mapserver.org/cgi-
bin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=Descri
beCoverage&COVERAGE=modis
- http://demo.mapserver.org/cgi-
bin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=GetCo
verage&COVERAGE=modis-
001&CRS=EPSG:26915&BBOX=159707,4597395,1400707,
5501395&WIDTH=400&HEIGHT=300&FORMAT=GEOTIFF_
RGB
 사용 편한 UI 제공
 WEB 기반의 Admin 페이지
 OS에 구애 받지 않음
 JAVA 기반, WEB 인터페이스기반
 캐시 지원
 서버 캐시(GWC), Cache-Control
 다양한 좌표계로 실시간 변환 가능
 2.1.3 버전부터 국내 좌표계도 모두 지원
 Data Processing도 가능
 WPS (참고: http://www.onspatial.com/2009/12/ogc-wps-
operation-quick-reference.html)
 거의 모든 GIS 자료 이용 가능
13
14
Vector File ESRI Shape, GML, VPF, JAVA Property
Raster File
GeoTIFF, Gtopo30, WorldImage, ArcGrid, GDAL Suffor
t Format(IMG, MrSID, ECW, JPEG2000, DTED, NITF)
Geo DBMS
PostGIS, Oracle, ArcSDE, SQL Server, MySQL, DB2, Ki
aros, Tibro
Web
Interface
WFS, WMS
WMS
PNG, JPEG, GIF, Tiff, KML, KMZ, SVG, GeoRSS, PDF, O
penLayers, AtomPub
WFS GML2, GML2-GZIP, GML3.1, GML3.2, GeoJSON, CSV
WCS
ArcGrid, Text Debug Grid, BMP, GeoTIFF, TIFF, PNG, J
PEG
Input
Format
Output
Format
WMS WFS WCS
2.1 GeoServer 설치
2.2 서비스 시작과 종료
2.3 관리용 UI
2.4 Layer 미리보기
15
16
다운로드 사이트
독립형 GeoServer 버전
http://geoserver.org/download
OpenGeo Suite 버전
http://boundlessgeo.com/solutions/opengeo-
suite/download/
※ OpenGeo Suite 버전이 확장 기능 더 많음
※ 독립형 버전은 Service로 설치 가능
※ 상용서버에는 War로 설치하는 것을 권장
17
 Download
안정적인 버전 잘 관리되고 있는 버전
기능: Stable > Maintenance
안정성: Stable < Maintenance
18
 설치 전제조건
 JRE(자바 실행환경) 6 이상이 설치되어 있어야 한다.
19
독립형 버전 서비스 설치
 설치 마지막 단계에서
Install as a Service옵션
선택
 서비스로 설치하면
리부팅해도 자동으로
GeoServer가 실행됨
 테스트용 설치는
Run manually 권장
20
 War 버전 설치
 상용 WAS가 설치된 경우 이용
 WAS 별로 war 파일 배포법 다름
 Tomcat인 경우 webapp 폴더에
복사하는 것으로 설치 완료
 기타 WAS의 경우 UI나 명령으로
손쉽게 배포 가능
21
 서비스로 등록한 경우
 시작에서 ‘서비스'검색하여 실행
 혹은 services.msc 실행
22
 Vista 이상의 경우
UAC(사용자 계정 콘트
롤) 때문에 실행 복잡
 관리자 권한 있는 도스
창에서 startup.bat 실행
해야 정상 실행
 시작에서 cmd 입력 후
Control-Shift-Enter 로 실
행해야 관리자 권한 도
스창 띠울 수 있음
 Run Manually로 설치한 경우
23
 시작하기
 브라우저 이용
 http://localhost:8080/geoserver/
 IE 사용 비권장: 느리고 안되는 기능이 간혹 있음
 기본비번: admin / geoserver
24
관리용 UI의 역할
25
 정보 & 상태 섹션
 GseServer의 진단과 환경을 설정할 수 있으며 특히 디버깅에 유용합니다.
 데이터
 Workspace, Stores, Layers, Layer Groups, Styles 등을 설정할 수 있으며, 각각의
하위 섹션은 비슷한 설정방법을 따르고 있습니다.
 서비스
 GeoServer 에서 서비스 가능한 WMS, WFS, WCS 서비스 환경 및 상태(시작/멈춤
등)나 고급 서비스 옵션을 설정할 수 있습니다.
 환경설정
 GeoWebCache 등의 GeoServer 고급 환경을 설정합니다.
 타일캐시
 Geowebcache에 의해 생성된 캐쉬레이어를 관리합니다.
 보안
 사용자나 서비스에 대한 보안정책을 설정합니다.
 데모
 GeoServer 에서 제공하는 SRS(Spatial Reference System)정보 및 폼 기반의 OGC
WMS, WFS, WCS Operation 에 대한 request 결과물을 확인 할 수 있습니다.
26
27
미리보기 옵션 활성화
28
CQL을 이용한 필터링
29
3. Data Publishing
3.1 Data Publishing 과정
3.2 Workspace 추가하기
3.3 Shapefile 서비스하기
3.4 GeoTIFF 서비스하기
3.5 PostGIS 레이어 서비스하기
30
 작업공간(Workspace) 생성
 자료를 관리를 위한 그룹
 보통 업무 프로젝트 단위로 생성
 저장소(Store) 생성
 자료의 물리적 위치를 등록
 폴더, DBMS, 파일 등 등록
 스타일(Style) 생성 (옵션)
 자료를 표현하는 방법을 상세히 정의
 레이어(Layer) 생성
 실제 개별 자료를 등록
 Data와 Publishing 섹션으로 구성
 레이어 그룹(Layer Group) 생성 (옵션)
 관련 자료를 묶어서 제공
 타일 캐시 설정 (옵션)
 서비스 효율화
31
32
33
34
실습용 데이터 복사
Day4_GeoServer 아래 모든 폴더를
GeoSeverdata_dirdata 에 복사
※ 관리자 권한이 필요할 수도 있음
35
저장소 생성하기
36
저장소 생성하기
37
레이어 생성하기
38
레이어 생성하기
39
레이어 미리보기
40
스타일 생성하기
41
스타일 변경하기 + 미리보기
Admin으로 시작하는 모든 레이어 발행
42
한 개의 레이어는 잘 발행이 안 될 것인데 왜일까요?
43
래스터 저장소 생성하기
44
45
래스터 레이어 생성하기
46
래스터 레이어 생성하기
47
48
PostGIS 저장소 생성하
49
50
이후 과정은 shp 파일 서비스하기와 동일함
PostGIS 레이어 생성하기
51
4. Map Styling
4.1 SLD의 이해
4.2 SLD Sample
4.3 적용된 스타일 확인
4.4 Vector 스타일 수정
4.5 Raster 스타일 수정
52
 Styled Layer Descriptor(SLD)란?
• 벡터 및 래스터 레이어 시각화를 위한 스타일
마크업 언어
• 심볼, 필터, 라벨, 최대/최소축척 등을 정의
• WMS의 핵심
• XML 기반의 OGC 표준 스펙
• http://www.opengeospatial.org/standards/sld
53
SLD로 할 수 있는 것
점 도형/색/크기/아이콘 등 설정
선 색/두께/점선/연결방법 등 설정
면 색/패턴채움/이미지채움 등 설정
텍스트 참조컬럼/색/강조/위치/회전 등 설정
투명도 조절
축척에 따른 자료 보이기
조건에 따른 자료 표현(가시/크기/색/회전/아이
콘 등) 변경
54
 SLD hierarchical structure
• Header
• FeatureTypeStyles
• Rules
• Symbolizers
 Symbolizer
• PointSymbolizer
• LineSymbolizer
• PolygonSymbolizer
• RasterSymbolizer
• TextSymbolizer
* Featuretype 이 layer 를 말함
55
56
Header
Symbolizer
57
SLD Cookbook
 http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/index.html
58
59
 권장사항
 레이어 하나당 하나의 스타일 만들것
 레이어명과 스타일명 같으면 편리
60
61
62
63
 기존 스타일 수정
64
 SLD 로드로 새 스타일 만들기
65
 SLD 로드로 새 스타일 만들기
66
 스타일 적용 확인
67
 스타일 적용
 1~256의 값을 색으로
표현 필요
 ShadedRelief.sld 를
Upload
 스타일 불러오기
68
69
70
71
5. Styling 고급
5.1 QGIS로 스타일 만들기
5.2 한글폰트 적용
5.3 레이어 그룹
5.4 축척에 따른 가시성 조정
 QGIS에 데이터 부르기
레이어-벡터 레이어 추가…
Admin_sid, admin_sgg, admin_emd 순서가 되게 조정
SLD 불러와 적용하기
인구 밀도 높은 지역을 붉은 색으로
population_density_red.sld 로 저장
GeoServer에서 불러오기 / 레이어에 적용
 GeoServer의 버그로 주의 필요
 Style에서 population_density 편집
 첫줄의 UTF-8을 EUC-KR로 수정
 font-family 부분을 검색
 값을 ‘맑은 고딕’으로 변경
 [Submit] 선택하여 저장
 Preview로 적용 확인
 레이어 그룹의 필요성
 지도는 보통 여러 레이어를 조합해 사용
 여러 레이어 조합시 순서가 매우 중요
 호출시에도 한 레이어 처럼 호출 가능
※ 리스트에서 가장 위의 레이어가 가장 먼저 그려져 다른 레이어에
의해 덮어짐
Label 부분의 MaxScaleDenominator 변경
79
6. 재미있는 기능들
6.1 Google Earth 연동
6.2 GetLegendGraphic
6.3 실시간 좌표계 변환
6.4 QGIS에서 WMS 불러오기
6.5 QGIS에서 WFS 불러오기
80
81
82
83
84
 Google Earth에서의 범례 기능은 WMS
표준 기능을 사용한 것임
 http://localhost:8080/geoserver/wms?REQUEST=
GetLegendGraphic&VERSION=1.0.0&FORMAT=im
age/png&WIDTH=20&HEIGHT=20&LAYER=seoul:
admin_emd
 GeoServer 관리UI에서 Publish 탭에서도
이 기능 이용
 SLD의 각 Role Title이 범례에 표시됨
 LEGEND_OPTIONS로 상세한 형태정의도
가능
 http://docs.geoserver.org/stable/en/user/serv
ices/wms/get_legend_graphic/legendgraphic.
html?highlight=legend
85
select ST_AsText(ST_Transform(ST_SetSRID(ST_LineFromText('LINESTRING(110 20, 150 50)'), 4326), 900913));
select ST_AsText(ST_Transform(ST_SetSRID(ST_LineFromText('LINESTRING(110 20, 150 50)'), 4326), 2097));
select ST_AsText(ST_Transform(ST_SetSRID(ST_LineFromText('LINESTRING(110 20, 150 50)'), 4326), 32652));
http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request
=GetMap&layers=world&styles=&width=660&height=330&format=applica
tion/openlayers&srs=EPSG:4326&bbox=110,20,150,50
http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request
=GetMap&layers=world&styles=&width=660&height=330&format=applica
tion/openlayers&srs=EPSG:900913&bbox=12245143.9872601,2273030.926
98769,16697923.618991,6446275.84101716
http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request
=GetMap&layers=world&styles=&width=660&height=330&format=applica
tion/openlayers&srs=EPSG:2097&bbox=-1599161.20365349,-
1401708.62964815,1839996.14666927,2091714.20629109
http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request
=GetMap&layers=world&styles=&width=660&height=330&format=applica
tion/openlayers&srs=EPSG:32652&bbox=-
1516012.385514,2328845.36574506,1998458.72659911,5753394.63053658
WGS84
Google
TM중부
UTM52N
좌표계 변환된
범위 계산
SQL
86
87
88
7. 성능향상 전략
7.1 Web Cache Logic 이해
7.2 Response Cache Header 적용
7.3 Geo Web Cache(GWC) 적용
7.4 서버 설정 변경
7.5 데이터 폴더 이동
7.5 데이터 최적화
89
Text
Text
Web Browser
GIS Server
URI 요청
Browser Cache 확인
있는가?
유효기간?
Browser Cache Hit!
End
헤더에 If-Modified-Since:
LastModifiedTime 붙여 요청
컨텐츠 요청
304 not modified
새 버전이 있는가?
컨텐츠 생산
(GeoServer)
서버캐시에 있는가?
200 OK + 컨텐츠 전송
컨텐츠 사용
No
Yes
Remain
Expire
No
Yes
0.1 ms
10 ms 50 ms
No
Yes
500 ms
90
Client A
App Server
Server
Cache
Contents
Builder
Browse
Cache
Client B
Browse
Cache
①RequestContents
②Check cache
and ask the
Production
③Storage Contents
⑧Check cache
and reuse
⑥Check
browser cache
and reuse
⑤Request
Same Contents
⑦RequestContents
Server Cache
• On server machine
• Can share with
others
Browser Cache
• On each client
machine
• Can not share with
others
 GeoServer Admin 화면 접속
 왼쪽 Data 항목 중 Layers 선택
 WorldCountries Layer 선택
 Publishing 탭 선택
 Edit Layer 아래 Response
Cache Headers 체크
 Cache Time에 초단위로 컨텐츠
유효기간 604800 (7일) 입력.
60초 * 60분 *24시간 * 7일 =
604800
 [Save] 눌러 완료
91
 GeoServer Admin 화면 접속
 왼쪽 Data 항목 중 Layer Preview 선택
 demo:WorldCountries Layer의
OpenLayers 선택
 지도창이 뜨면 Http 헤더 분석도구로
Response 확인 (Chrome [F12], FireFox
FireBug, IE HttpWatch)
 Response Header 부분에 Expires, Cache-
Control: max-age=604800 값이 추가되었
음을 확인
 휠로 줌 인, 줌 아웃 반복  별로 빨라지
지 않은 것 같다 ㅠㅠ
 지도 우상단의 옵션버튼 클릭
 Tiling에서 Tiled 선택
 휠로 줌 인, 줌 아웃 반복  이번엔 확실
히 빨라진 것이 보인다.
92
Cache가 되려면 Tiled로
호출하여야만 한다!
9393
• 지도가 나타내는 영역을 일정한 간격의 연속된
사각형 이미지로 미리 만들어 저장소에 저장
• 타일 이미지는 PNG/JPG등 다양한 포맷으로 생성
가능
• 타일영역을 레벨별로 피라미드화 하여 캐시 이미
지 저장
• 레벨별 해상도(resolution), 축척(scale)을 설정하
여 레벨 규칙을 정함
• 일반적으로 전국레벨의 캐시 이미지를 생성하는
데에는 많은 시간적인 자원을 필요로함
• 일부 많이 사용될 것으로 예상되는 지역 또는 많
은 형상들이 집중되어있는 부분을 지정하여 캐
시 설정하여 해결
96
 Enable direct integration with GeoServer WMS 옵션을 활성
화 하고, 호출시 Tiled=true 옵션을 추가하면 GWC 사용가능
 혹은 일반 WMS 인터페이스가 아닌 GWC 인터페이스를 호출
해야 동작 (일반 WMS인터페이스가
‘http://localhost:8080/geoserver/wms’라면 GWC 인터페이스
는 ‘http://localhost:8080/geoserver/gwc/service/wms’임)
 GWC를 통해 서비스된 컨텐츠의 Response Header에는
geowebcache-tile-index 라는 헤더가 추가됨
 WMS Tile Client Recommendation 규약을 따르지 않는 요
청은 캐시 안됨
 때문에 OpenLayers에서 WMS 레이어 설정시 레이어의 범
위와 타일크기를 정확히 지정해 주어야 함
 2.3.x 버전부터 Grid Set을 만드는 UI를 제공하여 국내 좌표
계도 어렵지 않게 이용 가능
var maxExtent = new OpenLayers.Bounds(-20037508, -20037508, 20037508,
20037508),
restrictedExtent = maxExtent.clone(),
maxResolution = 156543.0339;
var options = {
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
units: "m",
numZoomLevels: 18,
maxResolution: maxResolution,
maxExtent: maxExtent,
restrictedExtent: restrictedExtent
};
map = new OpenLayers.Map('map', options);
 JVM Setting
 512MB 이상의 메모리: -Xmx512m –Xms128m
 캐시가 오래 남게 설정: -XX:SoftRefLRUPolicyMSPerMB=36000
 영구 객체가 사용할 메모리 확보: -XX:MaxPermSize=128m
 병렬 가베지 콜렉션: -XX:+UseParallelGC
 OpenGeo Suite로 실행시
 opengeo-suite.bat 파일 수정
 set VMOPTS=-Xms128m -Xmx512m -XX:MaxPermSize=128m
 GeoServer 실행형 실행시
 bin/startup.bat 파일 수정
 -Xms128m -Xmx512m
 GeoServer 서비스 등록시
 Wrapper/wrapper.conf 파일 수정
 wrapper.java.initmemory=128
 wrapper.java.maxmemory=512
 Tomcat에서 실행시
 Configure Tomcat 기능 사용
97
 Logging 정책 변경
 관리 UI의 global Setting에서 조정할 수 있다.
 DEFAULT, VERBOSE, PRODUCTION,
GEOTOOLS_DEVELOPER,
GEOSERVER_DEVELOPER로 정책 변경 가능하다.
 PRODUCTION이 가장 적은 정보를 기록하므로
빠르다.
 Service Strategy 변경
 GeoServer의 web.xml 파일에서 조정 가능하다.
 SPEED는 스트리밍만으로 결과를 보내 빠르지만
안정성 떨어진다.
 BUFFER는 모든 결과를 메모리에 만든후 서비스
한다.
 FILE은 모든 결과를 파일로 만든 후 서비스 한다.
 PARTIAL-BUFFER는 BUFFER과 SPEED를 결합한
형태로 빠르고 어느정도 안정성도 있다.
98
 data_dir 폴더 포함내용
 Workspace, Store, Layer, Style 구성
 사용자 보안설정, GWC 캐시 파일, 로그 등
 data_dir 폴더 이동의 장점
 늘어나는 데이터가 System 디스크 소모하는 것을 막음
 GeoServer와 관련된 모든 설정을 묶어 관리 및 타 시스템 복사를
통한 병렬 확장 용이
 data_dir 이동 방법
 Web.xml 파일 수정
 <context-param> 중 GEOSERVER_DATA_DIR 항목부분 리마크 풀
고 값 수정
 수정 예
<context-param>
<param-name>GEOSERVER_DATA_DIR</param-name>
<param-value>D:geoserver_data_dir</param-value>
</context-param>
99
 Vector Data
 서비스할 좌표계로 소스데이터 미리 변환하라!
 GeoServer는 실시간 좌표계 변환도 잘 지원한다.
 하지만 실시간 변환은 느릴 수 밖에 없다.
 스타일을 이용하여 적당한 정보만 표출되게 제어하라!
 스타일 정보를 조정하여 스케일에 따라 적정한 레이어만 보이게 한다.
 같은 레이어도 스케일에 따라 적절한 심벌이 부여되게 한다.
 피처를 다듬어라!
 피처를 정규화(Simplofiy)하여 불필요한 점을 없엔다.
 각 스케일에 맞게 정규화된 어러 레이어를 사용하면 효과적이다.
 지나치게 넓은 범위의 MBR을 가지는 피처는 적절히 분리한다.
 느린 스타일의 사용을 최소화하라!
 투명도(Transparecy)의 사용은 기본적으로 2배 이상의 랜더링 시간이 걸
린다.
 라벨을 뿌리는 것은 비싼 비용을 각오해야 한다.
 라벨에 테두리(Halo)를 주는 것은 더 비산 비용이 필요하다.
100
 Raster Data
 JPEG나 ArcGRID의 사용을 자제하라!
 이런 포맷들은 디코딩에 많은 비용이 든다.
 가능한 한 인코딩 되지 않은 GeoTiff를 사용하라.
 ECW나 JPEG2000와 같은 진보된 웨이블릿 포맷도 바람직하다.
 다단계 타일링 된 GeoTiff를 사용하라!
 GDAL 툴인 gdaladdo 명령을 이용하면 다단계 타일링된 GeoTiff를 만들
수 있다.
 Ex) gdaladdo -r average mytiff.tif 2 4 8 16
 가능한 한, 영상을 합쳐라!
 여러 장의 영상을 여러 레이어로 서비스 하는 것이 가장 느리다.
 여러 장의 영상을 레이어 그룹으로 묶어 서비스 하면 조금(아주조금) 빨
라진다.
 한 개의 영상으로 합처 서비스 하면 많이 빨라진다.
 하지만 약 4GB 이상의 영상은 보통 GeoServer에 올릴 수 없기에 나눌 수
밖에 없다.
101
 Output Format Selection
 벡터 레이어
 png로 요청하는 것이 일반적으로 좋다. 빠르며 크지않고 투명처리가 된다.
 png8로 요청시 크기는 더 작아지지만 약간 느리고 색이 이상해질 수 있다.
 Gif는 png8과 유사하지만, 브라우저에 따라 투명처리가 안되는 경우가 있다.
 Jpeg는 느리고 투명처리 안되기에 비권장이다.
 위성영상/항공사진
 Jpeg가 용량이 작아 일반적으로 좋다.
 Jpeg가 인코딩이 느린 것은 캐시로 해결 가능하다.
 Null value 부분을 투명처리 하려면 PNG로 요청할 수 밖에 없다.
 안티알리어싱 비활성화
 빠른 속도를 원한다면 요청시 “format option”에서 안티알리어싱을 끌 수 있다.
 &format_options=antialias:none
 “Web safe” palette 이용
 이 옵션은 png8과 gif 포멧 이용시만 유효하다.
 &palette:safe
102
GeoServer
http://geoserver.org
GeoServer Documentation
http://docs.geoserver.org/
http://open.gaia3d.com/doc/GeoServer/2.4.x/
MakingMapsFast
http://www.slideshare.net/jangbi882/geo-
server-20111028
103

More Related Content

What's hot

공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정JungHwan Yun
 
Proj4를 이용한 좌표계 변환
Proj4를 이용한 좌표계 변환Proj4를 이용한 좌표계 변환
Proj4를 이용한 좌표계 변환BJ Jang
 
공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재JungHwan Yun
 
PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS MinPa Lee
 
오픈소스GIS의 이해와 활용
오픈소스GIS의 이해와 활용오픈소스GIS의 이해와 활용
오픈소스GIS의 이해와 활용SANGHEE SHIN
 
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServerMinPa Lee
 
오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGIS오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGISJungHwan Yun
 
State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진MinPa Lee
 
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반MinPa Lee
 
QGIS를 활용한 공간분석 입문 ver.1.0
QGIS를 활용한 공간분석 입문 ver.1.0QGIS를 활용한 공간분석 입문 ver.1.0
QGIS를 활용한 공간분석 입문 ver.1.0Byeong-Hyeok Yu
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반BJ Jang
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례BJ Jang
 
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028MinPa Lee
 
[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요slhead1
 
[공간정보시스템 개론] L09 공간 데이터 모델
[공간정보시스템 개론] L09 공간 데이터 모델[공간정보시스템 개론] L09 공간 데이터 모델
[공간정보시스템 개론] L09 공간 데이터 모델Kwang Woo NAM
 
LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료JungHwan Yun
 
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화MinPa Lee
 

What's hot (20)

공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정공간정보거점대학 PostGIS 고급과정
공간정보거점대학 PostGIS 고급과정
 
Proj4를 이용한 좌표계 변환
Proj4를 이용한 좌표계 변환Proj4를 이용한 좌표계 변환
Proj4를 이용한 좌표계 변환
 
공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재공간정보연구원 PostGIS 강의교재
공간정보연구원 PostGIS 강의교재
 
PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS
 
PostGIS 시작하기
PostGIS 시작하기PostGIS 시작하기
PostGIS 시작하기
 
오픈소스GIS의 이해와 활용
오픈소스GIS의 이해와 활용오픈소스GIS의 이해와 활용
오픈소스GIS의 이해와 활용
 
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer[FOSS4G Korea 2016] Workshop - Advanced GeoServer
[FOSS4G Korea 2016] Workshop - Advanced GeoServer
 
오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGIS오픈소스 GIS 교육 - PostGIS
오픈소스 GIS 교육 - PostGIS
 
State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진State of OpenGXT: 오픈소스 공간분석엔진
State of OpenGXT: 오픈소스 공간분석엔진
 
QGIS 활용
QGIS 활용QGIS 활용
QGIS 활용
 
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반
공간정보아카데미 - 오픈소스GIS 분석가과정 - QGIS 공간분석일반
 
QGIS를 활용한 공간분석 입문 ver.1.0
QGIS를 활용한 공간분석 입문 ver.1.0QGIS를 활용한 공간분석 입문 ver.1.0
QGIS를 활용한 공간분석 입문 ver.1.0
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반
 
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
[Foss4 g2013 korea]postgis와 geoserver를 이용한 대용량 공간데이터 기반 일기도 서비스 구축 사례
 
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
[FOSS4G Korea 2021]Workshop-QGIS-TIPS-20211028
 
[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요
 
[공간정보시스템 개론] L09 공간 데이터 모델
[공간정보시스템 개론] L09 공간 데이터 모델[공간정보시스템 개론] L09 공간 데이터 모델
[공간정보시스템 개론] L09 공간 데이터 모델
 
LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료
 
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화오픈소스GIS를 활용한 서버기반 공간분석과 시각화
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
 
Gis개론
Gis개론Gis개론
Gis개론
 

Similar to Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판

[EEENAR] OpenGXT 소개와 활용
[EEENAR] OpenGXT 소개와 활용 [EEENAR] OpenGXT 소개와 활용
[EEENAR] OpenGXT 소개와 활용 MinPa Lee
 
공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발MinPa Lee
 
공간정보아카데미 QGIS 기초 (2017.5)
공간정보아카데미 QGIS 기초 (2017.5)공간정보아카데미 QGIS 기초 (2017.5)
공간정보아카데미 QGIS 기초 (2017.5)Sungjin Kang
 
QGIS 3.0 새 기능 둘러보기
QGIS 3.0 새 기능 둘러보기QGIS 3.0 새 기능 둘러보기
QGIS 3.0 새 기능 둘러보기Byeong-Hyeok Yu
 
Vertica New Features - 8.1에서 9.2까지
Vertica New Features - 8.1에서 9.2까지Vertica New Features - 8.1에서 9.2까지
Vertica New Features - 8.1에서 9.2까지Kee Hoon Lee
 
Cloud for Kubernetes : Session1
Cloud for Kubernetes : Session1Cloud for Kubernetes : Session1
Cloud for Kubernetes : Session1WhaTap Labs
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty ServerJungWoon Lee
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
 
오픈소스기반 상용소프트웨어 GXT의 적용사례
오픈소스기반 상용소프트웨어 GXT의 적용사례오픈소스기반 상용소프트웨어 GXT의 적용사례
오픈소스기반 상용소프트웨어 GXT의 적용사례HaNJiN Lee
 
MariaDB 제품 소개
MariaDB 제품 소개MariaDB 제품 소개
MariaDB 제품 소개NeoClova
 
Python qgis advanced
Python qgis advancedPython qgis advanced
Python qgis advancedJiyoon Kim
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
mago3D 한국어 소개 자료
mago3D 한국어 소개 자료 mago3D 한국어 소개 자료
mago3D 한국어 소개 자료 SANGHEE SHIN
 
Better Scalable Flexible Soa Platform 0.8.0
Better Scalable Flexible Soa Platform 0.8.0Better Scalable Flexible Soa Platform 0.8.0
Better Scalable Flexible Soa Platform 0.8.0Kidong Lee
 
Azure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBAzure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBrockplace
 
[FOSS4G KOREA 2014] Introduce uDig
[FOSS4G KOREA 2014] Introduce uDig[FOSS4G KOREA 2014] Introduce uDig
[FOSS4G KOREA 2014] Introduce uDig기웅 김
 
FORGIS-SERVER 사용자 교육
FORGIS-SERVER 사용자 교육FORGIS-SERVER 사용자 교육
FORGIS-SERVER 사용자 교육ssuserd7017e
 
[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)Sang Don Kim
 
Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트Dong-Jin Park
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AILablup Inc.
 

Similar to Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판 (20)

[EEENAR] OpenGXT 소개와 활용
[EEENAR] OpenGXT 소개와 활용 [EEENAR] OpenGXT 소개와 활용
[EEENAR] OpenGXT 소개와 활용
 
공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발공간정보거점대학 - PyQGIS 및 플러그인 개발
공간정보거점대학 - PyQGIS 및 플러그인 개발
 
공간정보아카데미 QGIS 기초 (2017.5)
공간정보아카데미 QGIS 기초 (2017.5)공간정보아카데미 QGIS 기초 (2017.5)
공간정보아카데미 QGIS 기초 (2017.5)
 
QGIS 3.0 새 기능 둘러보기
QGIS 3.0 새 기능 둘러보기QGIS 3.0 새 기능 둘러보기
QGIS 3.0 새 기능 둘러보기
 
Vertica New Features - 8.1에서 9.2까지
Vertica New Features - 8.1에서 9.2까지Vertica New Features - 8.1에서 9.2까지
Vertica New Features - 8.1에서 9.2까지
 
Cloud for Kubernetes : Session1
Cloud for Kubernetes : Session1Cloud for Kubernetes : Session1
Cloud for Kubernetes : Session1
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
 
오픈소스기반 상용소프트웨어 GXT의 적용사례
오픈소스기반 상용소프트웨어 GXT의 적용사례오픈소스기반 상용소프트웨어 GXT의 적용사례
오픈소스기반 상용소프트웨어 GXT의 적용사례
 
MariaDB 제품 소개
MariaDB 제품 소개MariaDB 제품 소개
MariaDB 제품 소개
 
Python qgis advanced
Python qgis advancedPython qgis advanced
Python qgis advanced
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
mago3D 한국어 소개 자료
mago3D 한국어 소개 자료 mago3D 한국어 소개 자료
mago3D 한국어 소개 자료
 
Better Scalable Flexible Soa Platform 0.8.0
Better Scalable Flexible Soa Platform 0.8.0Better Scalable Flexible Soa Platform 0.8.0
Better Scalable Flexible Soa Platform 0.8.0
 
Azure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBAzure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDB
 
[FOSS4G KOREA 2014] Introduce uDig
[FOSS4G KOREA 2014] Introduce uDig[FOSS4G KOREA 2014] Introduce uDig
[FOSS4G KOREA 2014] Introduce uDig
 
FORGIS-SERVER 사용자 교육
FORGIS-SERVER 사용자 교육FORGIS-SERVER 사용자 교육
FORGIS-SERVER 사용자 교육
 
[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)
 
Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 

More from BJ Jang

Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료BJ Jang
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료BJ Jang
 
2017년 나의 계획
2017년 나의 계획2017년 나의 계획
2017년 나의 계획BJ Jang
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습BJ Jang
 
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리BJ Jang
 
QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교BJ Jang
 
PyQGIS 개발자 쿡북
PyQGIS 개발자 쿡북PyQGIS 개발자 쿡북
PyQGIS 개발자 쿡북BJ Jang
 
Open Source based GIS devlopment cases by Gaia3D_20150417
Open Source based GIS devlopment cases by Gaia3D_20150417Open Source based GIS devlopment cases by Gaia3D_20150417
Open Source based GIS devlopment cases by Gaia3D_20150417BJ Jang
 
Managing Multi-DBMS on a Single UI , a Web-based Spatial DB Manager-FOSS4G A...
Managing Multi-DBMS on a Single UI, a Web-based Spatial DB Manager-FOSS4G A...Managing Multi-DBMS on a Single UI, a Web-based Spatial DB Manager-FOSS4G A...
Managing Multi-DBMS on a Single UI , a Web-based Spatial DB Manager-FOSS4G A...BJ Jang
 
올챙이 국제스타 만들기 20141023
올챙이 국제스타 만들기 20141023올챙이 국제스타 만들기 20141023
올챙이 국제스타 만들기 20141023BJ Jang
 
Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001BJ Jang
 
Big size meteorological data processing and mobile displaying system using ...
Big size meteorological data processing and mobile displaying system using ...Big size meteorological data processing and mobile displaying system using ...
Big size meteorological data processing and mobile displaying system using ...BJ Jang
 
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례BJ Jang
 
[Foss4 g2013]the architecture of mobile traffic map service final
[Foss4 g2013]the architecture of mobile traffic map service final[Foss4 g2013]the architecture of mobile traffic map service final
[Foss4 g2013]the architecture of mobile traffic map service finalBJ Jang
 

More from BJ Jang (14)

Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
Mago3D Barcelona ICGC(카탈루니아 지형 및 지질연구소) 발표자료
 
오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료오픈소스GIS 개발 일반 강의자료
오픈소스GIS 개발 일반 강의자료
 
2017년 나의 계획
2017년 나의 계획2017년 나의 계획
2017년 나의 계획
 
오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습오픈소스 개발을 위한 Git 사용법 실습
오픈소스 개발을 위한 Git 사용법 실습
 
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
[FOSS4G Korea 2016] GeoHash를 이용한 지형도 변화탐지와 시계열 관리
 
QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교QGIS 소개 및 ArcMap과의 비교
QGIS 소개 및 ArcMap과의 비교
 
PyQGIS 개발자 쿡북
PyQGIS 개발자 쿡북PyQGIS 개발자 쿡북
PyQGIS 개발자 쿡북
 
Open Source based GIS devlopment cases by Gaia3D_20150417
Open Source based GIS devlopment cases by Gaia3D_20150417Open Source based GIS devlopment cases by Gaia3D_20150417
Open Source based GIS devlopment cases by Gaia3D_20150417
 
Managing Multi-DBMS on a Single UI , a Web-based Spatial DB Manager-FOSS4G A...
Managing Multi-DBMS on a Single UI, a Web-based Spatial DB Manager-FOSS4G A...Managing Multi-DBMS on a Single UI, a Web-based Spatial DB Manager-FOSS4G A...
Managing Multi-DBMS on a Single UI , a Web-based Spatial DB Manager-FOSS4G A...
 
올챙이 국제스타 만들기 20141023
올챙이 국제스타 만들기 20141023올챙이 국제스타 만들기 20141023
올챙이 국제스타 만들기 20141023
 
Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001Github를 이용한 협동개발 20141001
Github를 이용한 협동개발 20141001
 
Big size meteorological data processing and mobile displaying system using ...
Big size meteorological data processing and mobile displaying system using ...Big size meteorological data processing and mobile displaying system using ...
Big size meteorological data processing and mobile displaying system using ...
 
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
[Foss4 g2014 korea] qgis를 플랫폼으로 한 파이썬기반 공간통계 구현 사례
 
[Foss4 g2013]the architecture of mobile traffic map service final
[Foss4 g2013]the architecture of mobile traffic map service final[Foss4 g2013]the architecture of mobile traffic map service final
[Foss4 g2013]the architecture of mobile traffic map service final
 

Open Source GIS 기초교육 4일차 - GeoServer 기초 2014년 7월판

  • 2. 2 목차 1. GeoServer 개요 2. GeoServer 설치 3. Data Publishig 4. Map Styling 5. Styling 고급 6. 재미있는 기능들 7. 성능향상 전략
  • 3. 3 1. GeoServer 개요 1.1 GeoServer란? 1.2 GeoServer가 하는 일 1.3 WMS 인터페이스 1.4 WFS 인터페이스 1.5 WCS 인터페이스 1.6 GeoServer의 주요 특징 1.7 지원 포맷 일람
  • 4. QGIS • 공간데이터 생산/편집 도구 • 서비스 할 원본 데이터를 만들어 낸다. Post GIS • 공간데이터 관리도구 • 다듬어진 공간데이터를 효과적으로 관리하고 조건에 맞는 데이터를 제공한다. Geo Server • 공간데이터 서비스도구 • 잘 다듬어진 자료를 웹에서 예쁘게 서비스 한다. Open Layers • 웹 GIS 제작용 라이브러리 • 사용자가 웹상에서 공간정보를 편히 사용할 수 있는 UI를 제공한다. 4
  • 5. 5 다양한 공간 Data를 인터넷 GIS 인터페이스로 공급하는 서버 프로그램
  • 6. 6 GeoServer WMS WFS WCS Vector Source Raster Source Formatted Map Feature Object Coverage Data png, jpeg, gif GML, GeoJSON ArcGrid, GeoTiff, bmp Vector Source: Shape, GeoDB Raster Source: GeoTiff, IMG, ArcGrid
  • 7. 7 Web Map Service - OGC가 정의한 지도이미지 인터페이스 표준 - 요청방법과 응답형식을 정의 - 지도요청, 카타로그조회, 속성조회 가능 - Http로 요청하고 이미지로 받음 - 필수: GetCapabilities , GetMap - 옵션: GetFeatureInfo, DescribeLayer, GetLegendGraphic * OGC : Open Geospatial Consortium
  • 8. 8  Web Map Service - http://neowms.sci.gsfc.nasa.gov/wms/wms?version=1.1.1&SERVICE=WMS& REQUEST=GetMap&LAYERS=BlueMarbleNG&FORMAT=image/jpeg&SRS=EP SG:4326&BBOX=-180,-90,180,90&WIDTH=1000&HEIGHT=500 - http://neowms.sci.gsfc.nasa.gov/wms/wms?version=1.1.1&SERVICE=WMS&R EQUEST=GetMap&LAYERS=MOD_LSTN_CLIM_M&FORMAT=image/jpeg&SR S=EPSG:4326&BBOX=124,34,131,40&&WIDTH=600&HEIGHT=600 - http://neowms.sci.gsfc.nasa.gov/wms/wms?version=1.1.1&SERVICE=WMS&R EQUEST=GetMap&LAYERS=MOD14A1_M_FIRE&FORMAT=image/jpeg&SRS =EPSG:4326&BBOX=-180,-90,180,90&&WIDTH=1000&HEIGHT=500 - http://61.43.91.120:8080/geoserver/wms?LAYERS=STD_LINK&SRS=EPSG%3 A4326&TILED=false&ISBASELAYER=false&FORMAT=image%2Fgif&TRANSPAR ENT=true&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&E XCEPTIONS=application%2Fvnd.ogc.se_inimage&BBOX=125.420951,33.9194 28,129.376029,38.671569&WIDTH=480&HEIGHT=800
  • 9. 9  Web Feature Service - OGC가 정의한 지리적 피처(Feature)인터페이스 표준 - 요청방법과 응답형식을 정의 - 피처요청, 카타로그조회, 속성조회 가능 - Http로 요청하고 XML, GeoJSON 등으로 받음 - 필수: GetCapabilities , DescribeFeatureType , GetFeature ※Feature = Geometry + attiribute
  • 10. 10  Web Feature Service - http://www.openlayers.org/dev/examples/strat egy-paging.html http://www.openlayers.org/dev/examples/wfs- states.html - http://www.openlayers.org/dev/examples/wfs- snap-split.html - http://www.openlayers.org/dev/examples/wfs- spatial-filter.html
  • 11. 11 Web Coverage Service - OGC가 정의한 커버리지 인터페이스 표준 - 요청방법과 응답형식을 정의 - 커버리지요청, 카타로그조회 가능 - Http로 요청하고 래스터 파일로 받음 - 필수: GetCapabilities , DescribeCoverage , GetCoverage ※Coverage = 좌표가 있는 Raster Data
  • 12. 12  Web Coverage Service - http://demo.mapserver.org/cgi- bin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=GetCa pabilities - http://demo.mapserver.org/cgi- bin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=Descri beCoverage&COVERAGE=modis - http://demo.mapserver.org/cgi- bin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=GetCo verage&COVERAGE=modis- 001&CRS=EPSG:26915&BBOX=159707,4597395,1400707, 5501395&WIDTH=400&HEIGHT=300&FORMAT=GEOTIFF_ RGB
  • 13.  사용 편한 UI 제공  WEB 기반의 Admin 페이지  OS에 구애 받지 않음  JAVA 기반, WEB 인터페이스기반  캐시 지원  서버 캐시(GWC), Cache-Control  다양한 좌표계로 실시간 변환 가능  2.1.3 버전부터 국내 좌표계도 모두 지원  Data Processing도 가능  WPS (참고: http://www.onspatial.com/2009/12/ogc-wps- operation-quick-reference.html)  거의 모든 GIS 자료 이용 가능 13
  • 14. 14 Vector File ESRI Shape, GML, VPF, JAVA Property Raster File GeoTIFF, Gtopo30, WorldImage, ArcGrid, GDAL Suffor t Format(IMG, MrSID, ECW, JPEG2000, DTED, NITF) Geo DBMS PostGIS, Oracle, ArcSDE, SQL Server, MySQL, DB2, Ki aros, Tibro Web Interface WFS, WMS WMS PNG, JPEG, GIF, Tiff, KML, KMZ, SVG, GeoRSS, PDF, O penLayers, AtomPub WFS GML2, GML2-GZIP, GML3.1, GML3.2, GeoJSON, CSV WCS ArcGrid, Text Debug Grid, BMP, GeoTIFF, TIFF, PNG, J PEG Input Format Output Format WMS WFS WCS
  • 15. 2.1 GeoServer 설치 2.2 서비스 시작과 종료 2.3 관리용 UI 2.4 Layer 미리보기 15
  • 16. 16 다운로드 사이트 독립형 GeoServer 버전 http://geoserver.org/download OpenGeo Suite 버전 http://boundlessgeo.com/solutions/opengeo- suite/download/ ※ OpenGeo Suite 버전이 확장 기능 더 많음 ※ 독립형 버전은 Service로 설치 가능 ※ 상용서버에는 War로 설치하는 것을 권장
  • 17. 17  Download 안정적인 버전 잘 관리되고 있는 버전 기능: Stable > Maintenance 안정성: Stable < Maintenance
  • 18. 18  설치 전제조건  JRE(자바 실행환경) 6 이상이 설치되어 있어야 한다.
  • 19. 19 독립형 버전 서비스 설치  설치 마지막 단계에서 Install as a Service옵션 선택  서비스로 설치하면 리부팅해도 자동으로 GeoServer가 실행됨  테스트용 설치는 Run manually 권장
  • 20. 20  War 버전 설치  상용 WAS가 설치된 경우 이용  WAS 별로 war 파일 배포법 다름  Tomcat인 경우 webapp 폴더에 복사하는 것으로 설치 완료  기타 WAS의 경우 UI나 명령으로 손쉽게 배포 가능
  • 21. 21  서비스로 등록한 경우  시작에서 ‘서비스'검색하여 실행  혹은 services.msc 실행
  • 22. 22  Vista 이상의 경우 UAC(사용자 계정 콘트 롤) 때문에 실행 복잡  관리자 권한 있는 도스 창에서 startup.bat 실행 해야 정상 실행  시작에서 cmd 입력 후 Control-Shift-Enter 로 실 행해야 관리자 권한 도 스창 띠울 수 있음  Run Manually로 설치한 경우
  • 23. 23  시작하기  브라우저 이용  http://localhost:8080/geoserver/  IE 사용 비권장: 느리고 안되는 기능이 간혹 있음  기본비번: admin / geoserver
  • 25. 25  정보 & 상태 섹션  GseServer의 진단과 환경을 설정할 수 있으며 특히 디버깅에 유용합니다.  데이터  Workspace, Stores, Layers, Layer Groups, Styles 등을 설정할 수 있으며, 각각의 하위 섹션은 비슷한 설정방법을 따르고 있습니다.  서비스  GeoServer 에서 서비스 가능한 WMS, WFS, WCS 서비스 환경 및 상태(시작/멈춤 등)나 고급 서비스 옵션을 설정할 수 있습니다.  환경설정  GeoWebCache 등의 GeoServer 고급 환경을 설정합니다.  타일캐시  Geowebcache에 의해 생성된 캐쉬레이어를 관리합니다.  보안  사용자나 서비스에 대한 보안정책을 설정합니다.  데모  GeoServer 에서 제공하는 SRS(Spatial Reference System)정보 및 폼 기반의 OGC WMS, WFS, WCS Operation 에 대한 request 결과물을 확인 할 수 있습니다.
  • 26. 26
  • 29. 29 3. Data Publishing 3.1 Data Publishing 과정 3.2 Workspace 추가하기 3.3 Shapefile 서비스하기 3.4 GeoTIFF 서비스하기 3.5 PostGIS 레이어 서비스하기
  • 30. 30  작업공간(Workspace) 생성  자료를 관리를 위한 그룹  보통 업무 프로젝트 단위로 생성  저장소(Store) 생성  자료의 물리적 위치를 등록  폴더, DBMS, 파일 등 등록  스타일(Style) 생성 (옵션)  자료를 표현하는 방법을 상세히 정의  레이어(Layer) 생성  실제 개별 자료를 등록  Data와 Publishing 섹션으로 구성  레이어 그룹(Layer Group) 생성 (옵션)  관련 자료를 묶어서 제공  타일 캐시 설정 (옵션)  서비스 효율화
  • 31. 31
  • 32. 32
  • 33. 33
  • 34. 34 실습용 데이터 복사 Day4_GeoServer 아래 모든 폴더를 GeoSeverdata_dirdata 에 복사 ※ 관리자 권한이 필요할 수도 있음
  • 42. Admin으로 시작하는 모든 레이어 발행 42 한 개의 레이어는 잘 발행이 안 될 것인데 왜일까요?
  • 44. 44
  • 47. 47
  • 49. 49
  • 50. 50 이후 과정은 shp 파일 서비스하기와 동일함 PostGIS 레이어 생성하기
  • 51. 51 4. Map Styling 4.1 SLD의 이해 4.2 SLD Sample 4.3 적용된 스타일 확인 4.4 Vector 스타일 수정 4.5 Raster 스타일 수정
  • 52. 52  Styled Layer Descriptor(SLD)란? • 벡터 및 래스터 레이어 시각화를 위한 스타일 마크업 언어 • 심볼, 필터, 라벨, 최대/최소축척 등을 정의 • WMS의 핵심 • XML 기반의 OGC 표준 스펙 • http://www.opengeospatial.org/standards/sld
  • 53. 53 SLD로 할 수 있는 것 점 도형/색/크기/아이콘 등 설정 선 색/두께/점선/연결방법 등 설정 면 색/패턴채움/이미지채움 등 설정 텍스트 참조컬럼/색/강조/위치/회전 등 설정 투명도 조절 축척에 따른 자료 보이기 조건에 따른 자료 표현(가시/크기/색/회전/아이 콘 등) 변경
  • 54. 54  SLD hierarchical structure • Header • FeatureTypeStyles • Rules • Symbolizers  Symbolizer • PointSymbolizer • LineSymbolizer • PolygonSymbolizer • RasterSymbolizer • TextSymbolizer * Featuretype 이 layer 를 말함
  • 55. 55
  • 57. 57
  • 59. 59  권장사항  레이어 하나당 하나의 스타일 만들것  레이어명과 스타일명 같으면 편리
  • 60. 60
  • 61. 61
  • 62. 62
  • 64. 64  SLD 로드로 새 스타일 만들기
  • 65. 65  SLD 로드로 새 스타일 만들기
  • 67. 67  스타일 적용  1~256의 값을 색으로 표현 필요  ShadedRelief.sld 를 Upload  스타일 불러오기
  • 68. 68
  • 69. 69
  • 70. 70
  • 71. 71 5. Styling 고급 5.1 QGIS로 스타일 만들기 5.2 한글폰트 적용 5.3 레이어 그룹 5.4 축척에 따른 가시성 조정
  • 72.  QGIS에 데이터 부르기 레이어-벡터 레이어 추가… Admin_sid, admin_sgg, admin_emd 순서가 되게 조정
  • 74. 인구 밀도 높은 지역을 붉은 색으로 population_density_red.sld 로 저장
  • 75. GeoServer에서 불러오기 / 레이어에 적용
  • 76.  GeoServer의 버그로 주의 필요  Style에서 population_density 편집  첫줄의 UTF-8을 EUC-KR로 수정  font-family 부분을 검색  값을 ‘맑은 고딕’으로 변경  [Submit] 선택하여 저장  Preview로 적용 확인
  • 77.  레이어 그룹의 필요성  지도는 보통 여러 레이어를 조합해 사용  여러 레이어 조합시 순서가 매우 중요  호출시에도 한 레이어 처럼 호출 가능 ※ 리스트에서 가장 위의 레이어가 가장 먼저 그려져 다른 레이어에 의해 덮어짐
  • 79. 79 6. 재미있는 기능들 6.1 Google Earth 연동 6.2 GetLegendGraphic 6.3 실시간 좌표계 변환 6.4 QGIS에서 WMS 불러오기 6.5 QGIS에서 WFS 불러오기
  • 80. 80
  • 81. 81
  • 82. 82
  • 83. 83
  • 84. 84  Google Earth에서의 범례 기능은 WMS 표준 기능을 사용한 것임  http://localhost:8080/geoserver/wms?REQUEST= GetLegendGraphic&VERSION=1.0.0&FORMAT=im age/png&WIDTH=20&HEIGHT=20&LAYER=seoul: admin_emd  GeoServer 관리UI에서 Publish 탭에서도 이 기능 이용  SLD의 각 Role Title이 범례에 표시됨  LEGEND_OPTIONS로 상세한 형태정의도 가능  http://docs.geoserver.org/stable/en/user/serv ices/wms/get_legend_graphic/legendgraphic. html?highlight=legend
  • 85. 85 select ST_AsText(ST_Transform(ST_SetSRID(ST_LineFromText('LINESTRING(110 20, 150 50)'), 4326), 900913)); select ST_AsText(ST_Transform(ST_SetSRID(ST_LineFromText('LINESTRING(110 20, 150 50)'), 4326), 2097)); select ST_AsText(ST_Transform(ST_SetSRID(ST_LineFromText('LINESTRING(110 20, 150 50)'), 4326), 32652)); http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request =GetMap&layers=world&styles=&width=660&height=330&format=applica tion/openlayers&srs=EPSG:4326&bbox=110,20,150,50 http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request =GetMap&layers=world&styles=&width=660&height=330&format=applica tion/openlayers&srs=EPSG:900913&bbox=12245143.9872601,2273030.926 98769,16697923.618991,6446275.84101716 http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request =GetMap&layers=world&styles=&width=660&height=330&format=applica tion/openlayers&srs=EPSG:2097&bbox=-1599161.20365349,- 1401708.62964815,1839996.14666927,2091714.20629109 http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request =GetMap&layers=world&styles=&width=660&height=330&format=applica tion/openlayers&srs=EPSG:32652&bbox=- 1516012.385514,2328845.36574506,1998458.72659911,5753394.63053658 WGS84 Google TM중부 UTM52N 좌표계 변환된 범위 계산 SQL
  • 86. 86
  • 87. 87
  • 88. 88 7. 성능향상 전략 7.1 Web Cache Logic 이해 7.2 Response Cache Header 적용 7.3 Geo Web Cache(GWC) 적용 7.4 서버 설정 변경 7.5 데이터 폴더 이동 7.5 데이터 최적화
  • 89. 89 Text Text Web Browser GIS Server URI 요청 Browser Cache 확인 있는가? 유효기간? Browser Cache Hit! End 헤더에 If-Modified-Since: LastModifiedTime 붙여 요청 컨텐츠 요청 304 not modified 새 버전이 있는가? 컨텐츠 생산 (GeoServer) 서버캐시에 있는가? 200 OK + 컨텐츠 전송 컨텐츠 사용 No Yes Remain Expire No Yes 0.1 ms 10 ms 50 ms No Yes 500 ms
  • 90. 90 Client A App Server Server Cache Contents Builder Browse Cache Client B Browse Cache ①RequestContents ②Check cache and ask the Production ③Storage Contents ⑧Check cache and reuse ⑥Check browser cache and reuse ⑤Request Same Contents ⑦RequestContents Server Cache • On server machine • Can share with others Browser Cache • On each client machine • Can not share with others
  • 91.  GeoServer Admin 화면 접속  왼쪽 Data 항목 중 Layers 선택  WorldCountries Layer 선택  Publishing 탭 선택  Edit Layer 아래 Response Cache Headers 체크  Cache Time에 초단위로 컨텐츠 유효기간 604800 (7일) 입력. 60초 * 60분 *24시간 * 7일 = 604800  [Save] 눌러 완료 91
  • 92.  GeoServer Admin 화면 접속  왼쪽 Data 항목 중 Layer Preview 선택  demo:WorldCountries Layer의 OpenLayers 선택  지도창이 뜨면 Http 헤더 분석도구로 Response 확인 (Chrome [F12], FireFox FireBug, IE HttpWatch)  Response Header 부분에 Expires, Cache- Control: max-age=604800 값이 추가되었 음을 확인  휠로 줌 인, 줌 아웃 반복  별로 빨라지 지 않은 것 같다 ㅠㅠ  지도 우상단의 옵션버튼 클릭  Tiling에서 Tiled 선택  휠로 줌 인, 줌 아웃 반복  이번엔 확실 히 빨라진 것이 보인다. 92 Cache가 되려면 Tiled로 호출하여야만 한다!
  • 93. 9393 • 지도가 나타내는 영역을 일정한 간격의 연속된 사각형 이미지로 미리 만들어 저장소에 저장 • 타일 이미지는 PNG/JPG등 다양한 포맷으로 생성 가능 • 타일영역을 레벨별로 피라미드화 하여 캐시 이미 지 저장 • 레벨별 해상도(resolution), 축척(scale)을 설정하 여 레벨 규칙을 정함 • 일반적으로 전국레벨의 캐시 이미지를 생성하는 데에는 많은 시간적인 자원을 필요로함 • 일부 많이 사용될 것으로 예상되는 지역 또는 많 은 형상들이 집중되어있는 부분을 지정하여 캐 시 설정하여 해결
  • 94.
  • 95.
  • 96. 96  Enable direct integration with GeoServer WMS 옵션을 활성 화 하고, 호출시 Tiled=true 옵션을 추가하면 GWC 사용가능  혹은 일반 WMS 인터페이스가 아닌 GWC 인터페이스를 호출 해야 동작 (일반 WMS인터페이스가 ‘http://localhost:8080/geoserver/wms’라면 GWC 인터페이스 는 ‘http://localhost:8080/geoserver/gwc/service/wms’임)  GWC를 통해 서비스된 컨텐츠의 Response Header에는 geowebcache-tile-index 라는 헤더가 추가됨  WMS Tile Client Recommendation 규약을 따르지 않는 요 청은 캐시 안됨  때문에 OpenLayers에서 WMS 레이어 설정시 레이어의 범 위와 타일크기를 정확히 지정해 주어야 함  2.3.x 버전부터 Grid Set을 만드는 UI를 제공하여 국내 좌표 계도 어렵지 않게 이용 가능 var maxExtent = new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508), restrictedExtent = maxExtent.clone(), maxResolution = 156543.0339; var options = { projection: new OpenLayers.Projection("EPSG:900913"), displayProjection: new OpenLayers.Projection("EPSG:4326"), units: "m", numZoomLevels: 18, maxResolution: maxResolution, maxExtent: maxExtent, restrictedExtent: restrictedExtent }; map = new OpenLayers.Map('map', options);
  • 97.  JVM Setting  512MB 이상의 메모리: -Xmx512m –Xms128m  캐시가 오래 남게 설정: -XX:SoftRefLRUPolicyMSPerMB=36000  영구 객체가 사용할 메모리 확보: -XX:MaxPermSize=128m  병렬 가베지 콜렉션: -XX:+UseParallelGC  OpenGeo Suite로 실행시  opengeo-suite.bat 파일 수정  set VMOPTS=-Xms128m -Xmx512m -XX:MaxPermSize=128m  GeoServer 실행형 실행시  bin/startup.bat 파일 수정  -Xms128m -Xmx512m  GeoServer 서비스 등록시  Wrapper/wrapper.conf 파일 수정  wrapper.java.initmemory=128  wrapper.java.maxmemory=512  Tomcat에서 실행시  Configure Tomcat 기능 사용 97
  • 98.  Logging 정책 변경  관리 UI의 global Setting에서 조정할 수 있다.  DEFAULT, VERBOSE, PRODUCTION, GEOTOOLS_DEVELOPER, GEOSERVER_DEVELOPER로 정책 변경 가능하다.  PRODUCTION이 가장 적은 정보를 기록하므로 빠르다.  Service Strategy 변경  GeoServer의 web.xml 파일에서 조정 가능하다.  SPEED는 스트리밍만으로 결과를 보내 빠르지만 안정성 떨어진다.  BUFFER는 모든 결과를 메모리에 만든후 서비스 한다.  FILE은 모든 결과를 파일로 만든 후 서비스 한다.  PARTIAL-BUFFER는 BUFFER과 SPEED를 결합한 형태로 빠르고 어느정도 안정성도 있다. 98
  • 99.  data_dir 폴더 포함내용  Workspace, Store, Layer, Style 구성  사용자 보안설정, GWC 캐시 파일, 로그 등  data_dir 폴더 이동의 장점  늘어나는 데이터가 System 디스크 소모하는 것을 막음  GeoServer와 관련된 모든 설정을 묶어 관리 및 타 시스템 복사를 통한 병렬 확장 용이  data_dir 이동 방법  Web.xml 파일 수정  <context-param> 중 GEOSERVER_DATA_DIR 항목부분 리마크 풀 고 값 수정  수정 예 <context-param> <param-name>GEOSERVER_DATA_DIR</param-name> <param-value>D:geoserver_data_dir</param-value> </context-param> 99
  • 100.  Vector Data  서비스할 좌표계로 소스데이터 미리 변환하라!  GeoServer는 실시간 좌표계 변환도 잘 지원한다.  하지만 실시간 변환은 느릴 수 밖에 없다.  스타일을 이용하여 적당한 정보만 표출되게 제어하라!  스타일 정보를 조정하여 스케일에 따라 적정한 레이어만 보이게 한다.  같은 레이어도 스케일에 따라 적절한 심벌이 부여되게 한다.  피처를 다듬어라!  피처를 정규화(Simplofiy)하여 불필요한 점을 없엔다.  각 스케일에 맞게 정규화된 어러 레이어를 사용하면 효과적이다.  지나치게 넓은 범위의 MBR을 가지는 피처는 적절히 분리한다.  느린 스타일의 사용을 최소화하라!  투명도(Transparecy)의 사용은 기본적으로 2배 이상의 랜더링 시간이 걸 린다.  라벨을 뿌리는 것은 비싼 비용을 각오해야 한다.  라벨에 테두리(Halo)를 주는 것은 더 비산 비용이 필요하다. 100
  • 101.  Raster Data  JPEG나 ArcGRID의 사용을 자제하라!  이런 포맷들은 디코딩에 많은 비용이 든다.  가능한 한 인코딩 되지 않은 GeoTiff를 사용하라.  ECW나 JPEG2000와 같은 진보된 웨이블릿 포맷도 바람직하다.  다단계 타일링 된 GeoTiff를 사용하라!  GDAL 툴인 gdaladdo 명령을 이용하면 다단계 타일링된 GeoTiff를 만들 수 있다.  Ex) gdaladdo -r average mytiff.tif 2 4 8 16  가능한 한, 영상을 합쳐라!  여러 장의 영상을 여러 레이어로 서비스 하는 것이 가장 느리다.  여러 장의 영상을 레이어 그룹으로 묶어 서비스 하면 조금(아주조금) 빨 라진다.  한 개의 영상으로 합처 서비스 하면 많이 빨라진다.  하지만 약 4GB 이상의 영상은 보통 GeoServer에 올릴 수 없기에 나눌 수 밖에 없다. 101
  • 102.  Output Format Selection  벡터 레이어  png로 요청하는 것이 일반적으로 좋다. 빠르며 크지않고 투명처리가 된다.  png8로 요청시 크기는 더 작아지지만 약간 느리고 색이 이상해질 수 있다.  Gif는 png8과 유사하지만, 브라우저에 따라 투명처리가 안되는 경우가 있다.  Jpeg는 느리고 투명처리 안되기에 비권장이다.  위성영상/항공사진  Jpeg가 용량이 작아 일반적으로 좋다.  Jpeg가 인코딩이 느린 것은 캐시로 해결 가능하다.  Null value 부분을 투명처리 하려면 PNG로 요청할 수 밖에 없다.  안티알리어싱 비활성화  빠른 속도를 원한다면 요청시 “format option”에서 안티알리어싱을 끌 수 있다.  &format_options=antialias:none  “Web safe” palette 이용  이 옵션은 png8과 gif 포멧 이용시만 유효하다.  &palette:safe 102

Editor's Notes

  1. 제3차시 GeoServer 입니다. 이번 차시에 학습할 내용은 GeoServer를 설치하고 Shapefile, Geotiff, PostGIS 등과 연동하여 서비스하는 과정입니다.
  2. 학습은 다음의 순서로 진행합니다.
  3. 먼저 GeoServer의 개요, 주요기능 및 특징에 대해 알아보도록 하겠습니다.
  4. 고객님. 매번 비슷한거 계속 반복해서 많이 당황하셨지요?
  5. 오늘 강의할 GeoServer 라는 것이 도대체 무엇일까요? 한마디로 정의하면 Geospatial Gateway라 할 수 있는데… 어렵지요. 좀 더 풀어서 설명하면, 다양한 공간 데이터를, 인터넷 GIS 인터페이스로, 공급하는 서버 프로그램이라 정의 할 수 있습니다. 아직도 그다지 쉽지 않지요. 그림으로 다시 보겠습니다.
  6. 지오서버의 가장 중요한 역할은 내 컴퓨터에 있는 공간자료를 인터넷에 서비스 한다는 것입니다. 앞의 정의를 다시 보지요. 다양한 공간 데이터를 인터넷… 다양한 공간데이터 라는 것은 Vector데이터와 Raster 데이터를 의미하는데 벡터는 우리가 많이 사용하는 Shape과 거의 대부분의 공간자료를 지원하는 DBMS와 다 연결 가능합니다. 심지어 국내에서 개발된 티베로, 카이로스 등의 DBMS도 역시 GeoServer와 연결해서 서비스 가능합니다. 레스터는 위성사진과 항공사진을 담는데 주로 사용되는 GeoTiff, IMG 등의 자료와 Jpeg등의 일반 이미지도 다 가능하고요 ArcGrid, DTED 등 ArcGIS에서 사용 가능한 레스터 자료들은 다 사용 가능하다 생각하시면 됩니다. 그리고 인터넷 GIS 인터페이스 라는 것은 WMS, WFS, WCS 등을 의미하는데, 웹브라우저로도 받을 수 있고 인터넷만 연결되면 여러 가지 GIS 프로그램들이 끌어다 쓸 수 있도록 자료를 제공해 주는 것을 말하지요.
  7. -전세계 위성사진 (나사 블루마블) -한반도 평균 야간 지역 (나사) -전세계 화제 (나사) -실시간 교통정보 (국가교통정보센터)
  8. -OpenLayers에서 제공하는 WFS 이용 사진검색 -GML로 데이터 받은 결과 -JSON으로 데이터 받은 결과
  9. GeoServer의 주요 기능 및 특징은 다음과 같습니다. 첫째, OGC 웹서비스인 WMS, WFS, WCS 표준을 구현하고 인증받은 제품이며 WPS를 Extension으로 지원하고 있습니다. 둘째, 웹 기반의 손쉬운 설정 도구를 지원합니다. 셋째, PostGIS, Shapefile, ArcSDE, DB2, Oracle, MySQL 등 오프소스에서부터 상용 RDBMS에 이르기까지 다양한 데이터 소스를 지원합니다. 넷째, GeoTIFF, GTOPO30, ArcGrid, World Images, Image Mosiacs, Image Pyramids 등 래스터 포맷을 Native Java로 지원하며, GDAL ImageIO Extension 을 사용하면 MrSID, ECW, JPEG2000, DTED, Erdas Imagine, NITF 등 GDAL이 지원하는 모든 래스터 포맷을 사용할 수 있습니다. 다섯째, On the fly 좌표변환(reprojection)을 지원합니다. 여섯째, JPEG, GIF, PNG, PDF, SVG, KML, [GeoRSS] 등의 Web Map output을 지원합니다. 일곱째, 지도 이미지 캐시 엔진인 GeoWebCache와 통합되어 있습니다. 여덟째, WMS를 이용하면 Google Earth를 사용하여 벡터, 래스터 등을 동적으로 시각화할 수 있습니다.
  10. GeoServer는 3가지 버전이 있습니다. 우리는 이번에 openGeo Suite 커뮤니티 버전으로 강의를 진행합니다. GeoServer에 대한 판매사의 기술지원과 보증을 받고 싶으신 분은 상용버전을 사용하십시오. GeoServer 만을 설치하고 싶으신 분은 공개버전을 받으시면 됩니다.
  11. 다운로드 한 OpenGeoSuite-ce-2.4.4.exe 파일을 더블 클릭하여 설치를 시작합니다. OpenGeo Suite의 설치 마법사 윈도구가 나타나면 Next버튼을 눌러 라이선스를 확인합니다. OpenGeo Suite은 GNU GPL 라이선스 하에 배포됩니다. 찬찬히 라이선스 정보를 읽은 후 I Agree 버튼을 눌러 다음으로 이동합니다.
  12. 윈도우OS에서 서비스로 등록한 경우 제어판의 서비스에서 시작과 종료를 할 수 있습니다.
  13. OpenGeo Suite의 시작과 종료는 Dashboard 외에 윈도우 시작메뉴의 OpenGeo Suite 프로그램 그룹에 등록된 Start OpenGeo Suite, Stop OpenGeo Suite 메뉴를 이용하거나 명령 프롬프트를 사용할 수 있습니다. 명령 프롬프트를 사용하는 경우에는 명령 프롬프트를 실행 후 설치 디렉터리(C:Program FilesOpenGeoOpenGeo Suite)로 이동하여 다음의 명령을 실행하면 됩니다. 시작하기 > opengeo-suite start 종료하기: > opengeo-suite stop
  14. GeoServer는 웹 기반 관리 인터페이스를 포함하고 있으며 대부분의 설정을 이 인터페이스를 통해 수행할 수 있습니다. 이제 GeoServer의 관리도구를 실행해 보도록 하겠습니다. Dashboard의 Components 패널에서 GeoServer의 Manage 버튼을 누릅니다. 또는 웹 브라우저를 실행하고 다음의 URL을 직접 입력해도 됩니다. http://localhost:8080/geoserver/
  15. 로그인 후에는 그림과 같이 더 많은 옵션들이 표시됩니다. 그림을 보면 현재 서비스중인 WMS, WFS, WCS 지원버전이 오른쪽에 표시되고, 화면 중앙에는 현재 서비스중인 Layer(레이어) 및 workspace(워크스페이스), store(스토어) 정보가 표시됩니다. 왼쪽 링크 메뉴의 개략적인 내용은 다음과 같습니다. ▷ About & Status 섹션 GseServer의 진단과 환경을 설정할 수 있으며 특히 디버깅에 유용합니다. ▷ Data Workspace, Stores, Layers, Layer Groups, Styles 등을 설정할 수 있으며, 각각의 하위 섹션은 비슷한 설정방법을 따르고 있습니다. ▷ Services GeoServer 에서 서비스 가능한 WMS, WFS, WCS 서비스 환경 및 상태(시작/멈춤 등)나 고급 서비스 옵션을 설정할 수 있습니다. ▷ Settings GeoWebCache 등의 GeoServer 고급 환경을 설정합니다. ▷ Security 사용자나 서비스에 대한 보안정책을 설정합니다. ▷ Demos GeoServer 에서 제공하는 SRS(Spatial Reference System)정보 및 폼 기반의 OGC WMS, WFS, WCS Operation 에 대한 request 결과물을 확인 할 수 있습니다. 각각의 서브메뉴들을 눌러 둘러보시기 바랍니다. 특히 Demos 메뉴는 처음 접하는 사용자에게 많은 도움이 됩니다.
  16. 로그인 후에는 그림과 같이 더 많은 옵션들이 표시됩니다. 그림을 보면 현재 서비스중인 WMS, WFS, WCS 지원버전이 오른쪽에 표시되고, 화면 중앙에는 현재 서비스중인 Layer(레이어) 및 workspace(워크스페이스), store(스토어) 정보가 표시됩니다. 왼쪽 링크 메뉴의 개략적인 내용은 다음과 같습니다. ▷ About & Status 섹션 GseServer의 진단과 환경을 설정할 수 있으며 특히 디버깅에 유용합니다. ▷ Data Workspace, Stores, Layers, Layer Groups, Styles 등을 설정할 수 있으며, 각각의 하위 섹션은 비슷한 설정방법을 따르고 있습니다. ▷ Services GeoServer 에서 서비스 가능한 WMS, WFS, WCS 서비스 환경 및 상태(시작/멈춤 등)나 고급 서비스 옵션을 설정할 수 있습니다. ▷ Settings GeoWebCache 등의 GeoServer 고급 환경을 설정합니다. ▷ Security 사용자나 서비스에 대한 보안정책을 설정합니다. ▷ Demos GeoServer 에서 제공하는 SRS(Spatial Reference System)정보 및 폼 기반의 OGC WMS, WFS, WCS Operation 에 대한 request 결과물을 확인 할 수 있습니다. 각각의 서브메뉴들을 눌러 둘러보시기 바랍니다. 특히 Demos 메뉴는 처음 접하는 사용자에게 많은 도움이 됩니다.
  17. 여기에서는 이미 등록된 샘플데이터를 GeoServer에 내장된 OpenLayers를 이용해서 미리보기해 보도록 하겠습니다. Layer Preview 페이지에서는 OpenLayers를 이용하여 웹 브라우저에서 직접 지도를 확인하거나 Google Earth버튼을 눌러 KML 파일로 내보내기하여 Google Earth에서도 레이어를 확인할 수 있습니다. OpenGeo Suite를 사용하는 경우에는 Styler를 웹브라우저상에 구동시켜 심볼을 변경할 수도 있습니다. 우선  그림과 같이 Layer Preview 링크 메뉴를 클릭한 후 USA-Population 레이어의 OpenLayers 링크를 클릭합니다.
  18. 그림과 같이 미리 정의된 심볼 스타일로 USA-Population 레이어를 확인할 수 있습니다. 이 지도는 GeoServer의 Web Map Service (WMS) 를 통해 서비스됩니다. 지도상에 마우스를 클릭하면 속성정보도 확인할 수 있습니다. 확장버튼을 눌러 지도의 크기나 이미지 포맷 등의 옵션을 변경해 보시기 바랍니다.
  19. GeoServer는 명령프롬프트와 같은 커멘드 환경 없이도 로그를 확인할 수 있습니다. 이는 운영상 문제가 생겼을 때 아주 유용하며 GeoServer Logs 링크 메뉴를 클릭하면 됩니다. 익숙해 질 수 있도록 링크 메뉴를 하나씩 확인해 보기 바랍니다.
  20. 데이터를 Loading하고 Publishing하는 것은 GeoServer의 핵심 기능입니다. 이 장에서는 Shapefile, GeoTiff, PostGIS로부터 데이터를 불러와서 서비스를 발행(Publishing)하는 과정을 설명합니다. 또한 여러 레이어를 하나의 레이어처럼 서비스할 수 있는 레이어 그룹을 만드는 과정을 포함합니다.
  21. 데이터 로딩을 위한 첫번째 단계는 Workspace를 생성하는 것입니다. Workspace는 가상의 컨테이너 역할을 하며 다양한 데이터 소스들로부터 여러 레이어를 담을 수 있으며 Workspace 내에서 레이어 이름은 유일해야 합니다. 또한 GeoServer에서는 여러 Workspace를 생성할 수 있으며 이 이름 또한 유일해야 합니다. GeoServer Web Administration 페이지에서 그림과 같이 Data 메뉴 아래의 Workspace를 클릭 후 Add new Workspace를 클릭합니다.
  22. Workspace는 Name(때로는 namespace prefix라 부름)과 Namespace URI로 구성됩니다. 그림에서와 같이 다음 항목을 입력합니다. Name: seoul Namespace URI: http://geoserver.org/seoul Default workspace: 체크 이제 Submit 버튼을 눌러 Workspace를 생성합니다.
  23. Workspace가 생성된 화면입니다. 이제 다운로드 한 샘플 데이터를 이 Workspace에 로딩할 준비가 완료되었습니다.
  24. Shapefile을 GeoServer에 로딩하는 것은 가장 간단한 방법이며 GeoServer에서는 단일 Shapefile 또는 Shapefile 폴더를 Data Store로 사용할 수 있습니다. 여기에서는 여러 Shapefile을 사용할 수 있는 Directory of spatial files(shapefiles)를 사용하는 방법을 설명합니다. 우선 Shapefile Data Store를 생성해야 합니다. GeoServer Web Administration 페이지에서 그림과 같이 Data 메뉴 아래의 Stores 링크를 클릭한 후 Add new Store 링크를 클릭합니다. New data source 페이지에서 Vector Data Sources 아래의 Directory of spatial files(shapefiles) 링크를 클릭합니다.
  25. Shapefile을 GeoServer에 로딩하는 것은 가장 간단한 방법이며 GeoServer에서는 단일 Shapefile 또는 Shapefile 폴더를 Data Store로 사용할 수 있습니다. 여기에서는 여러 Shapefile을 사용할 수 있는 Directory of spatial files(shapefiles)를 사용하는 방법을 설명합니다. 우선 Shapefile Data Store를 생성해야 합니다. GeoServer Web Administration 페이지에서 그림과 같이 Data 메뉴 아래의 Stores 링크를 클릭한 후 Add new Store 링크를 클릭합니다. New data source 페이지에서 Vector Data Sources 아래의 Directory of spatial files(shapefiles) 링크를 클릭합니다.
  26. New Vector Data Source 페이지는 그림과 같습니다. 페이지에서 정보를 다음과 같이 입력합니다. Connection Parameters 탭에서 그림과 같이 [Browse…] 버튼을 눌러 로컬 디스크를 직접 탐색할 수 있습니다. DBF 캐릭터셋(charset)은 반드시 EUC-KR을 선택해야 합니다. 그렇지 않으면 한글이 포함된 속성정보는 제대로 표시되지 않습니다. Workspace: seoul Data Source Name: seoul Enabled: Checked Description: seoul 주제도 Connection Parameters: file:/C:/OpenGeoSuite/data/seoul/ DBF charset: EUC-KR Create spatial index if missing/outdated: Checked Use memory mapped buffers: Unchecked Cache and reuse memory maps: Checked 정보 입력을 마친 후 [Save]버튼을 눌러 Store를 등록합니다. 이제 seoul 폴더에 포함된 모든 Shapefile 목록이 표시됩니다.
  27. GeoServer Web Administration 페이지에서 그림과 같이 Data 메뉴 아래의 Layers 링크를 클릭한 후 Add new Resouce 링크를 클릭합니다. New Layer 페이지가 표시되면 Add layer from 콤보박스에서 seoul:seoul(Workspace:Store 이름)을 선택합니다. 그림과 같이 seoul Data Store에 포함된 모든 레이어 목록이 표시됩니다. 현재까지는 데이터가 로딩만 되었고 서비스 상태는 아닙니다. 레이어가 서비스 상태이면 Publish again이라는 상태로 변경이 됩니다. 첫 레이어(admin_emd)에서 Publish 링크를 클릭합니다.
  28. 이 그림은 서비스 Publishing 전 레이어 configuration 페이지입니다. 많은 설정 항목이 있지만 지금 당장 전체 정보를 다 입력할 필요는 없으며, 나중에 다시 이 설정정보를 변경할 것입니다. 우선 Declared SRS 를 EPSG:2097로, SRS handling을 Force declared로 설정합니다. Bounding Boxes 섹션에서 Compute from data, Compute from native bounds 링크를 차례로 클릭합니다. 이 과정이 끝나면 Save 버튼을 눌러 레이어를 Publishing합니다.
  29. 이제 Layer Preview 페이지로 이동하면 방금 Publishing한 seoul:admin_emd 레이어를 미리보기 할 수 있습니다. 이 레이어에 대한 심볼설정(Styling)은 다음 장에서 설명하도록 하겠습니다.
  30. 이제 Layer Preview 페이지로 이동하면 방금 Publishing한 seoul:admin_emd 레이어를 미리보기 할 수 있습니다. 이 레이어에 대한 심볼설정(Styling)은 다음 장에서 설명하도록 하겠습니다.
  31. 이제 Layer Preview 페이지로 이동하면 방금 Publishing한 seoul:admin_emd 레이어를 미리보기 할 수 있습니다. 이 레이어에 대한 심볼설정(Styling)은 다음 장에서 설명하도록 하겠습니다.
  32. GeoServer에서는 Shapefile과 같은 벡터 데이터 외에 래스터(Raster) 데이터도 Publishing 가능합니다. 래스터 데이터는 DEM이나 항공영상 등 좌표정보가 입력된(georeferenced) 이미지를 포함합니다. GeoServer Web Administration page에서 그림과 같이 Stores를 클릭 후 Add new Store링크를 클릭합니다. Raster Data Sources 페이지에서 GeoTIFF를 클릭합니다.
  33. Add Raster Data Source 페이지에서 다음의 정보를 입력합니다. Connection Parameters 섹션에서는 Browse… 버튼을 눌러 C:OpenGeoSuitedataseoul_raster 폴더의 landsat.tif 파일을 선택합니다. Workspace: seoul Data Source Name: landsat Enabled: Checked Description: 레이어 메타정보를 입력 Connection Parameters: file://C:OpenGeoSuitedataseoul_rasterlandsatf.tif 입력이 완료되면 Save 버튼을 클릭하여 Store를 생성합니다.
  34. Add Raster Data Source 페이지에서 다음의 정보를 입력합니다. Connection Parameters 섹션에서는 Browse… 버튼을 눌러 C:OpenGeoSuitedataseoul_raster 폴더의 landsat.tif 파일을 선택합니다. Workspace: seoul Data Source Name: landsat Enabled: Checked Description: 레이어 메타정보를 입력 Connection Parameters: file://C:OpenGeoSuitedataseoul_rasterlandsatf.tif 입력이 완료되면 Save 버튼을 클릭하여 Store를 생성합니다.
  35. New Layer 페이지가 표시되면 Shapefile 서비스 Publishing 과정과 같이 설정하면 됩니다. 우선 Declared SRS 를 EPSG:2097로, SRS handling을 Force declared로 설정합니다. Bounding Boxes 섹션에서 Compute from data, Compute from native bounds 링크를 차례로 클릭합니다. 이 과정이 끝나면 Save 버튼을 눌러 레이어를 Publishing합니다.
  36. 이제 Layer Preview 페이지로 이동하면 방금 Publishing한 seoul:landsat 레이어를 미리보기 할 수 있습니다. 이 레이어에 대한 심볼설정(Styling)은 다음 장에서 설명하도록 하겠습니다.
  37. 이번에는 지난 차시에서 배운 PostGIS 데이터베이스를 이용하여 GeoServer에서 Publishing하는 과정입니다. GeoServer Web Administration page에서 그림과 같이 Stores를 클릭 후 Add new Store 링크를 클릭합니다. New data source 페이지로 전환되면 Vector Data Sources 탭의 PostGIS를 클릭합니다.
  38. New Vector Data Source 페이지에서 다음의 정보를 입력합니다. Data Source Name: postgis_seoul Enabled: Checked Description: postgis 메타데이타 입력 Connection Parameters: Host: localhost Port: 54321 Database: seoul Schema: public User: postgres Password: postgis 설정이 완료되면 Save 버튼을 눌러 PostGIS Data Store를 생성합니다. 이후 PostGIS 레이어에 대한 서비스 Publishing은 Shapefile Publishing 과정과 동일합니다.
  39. New Vector Data Source 페이지에서 다음의 정보를 입력합니다. Data Source Name: postgis_seoul Enabled: Checked Description: postgis 메타데이타 입력 Connection Parameters: Host: localhost Port: 54321 Database: seoul Schema: public User: postgres Password: postgis 설정이 완료되면 Save 버튼을 눌러 PostGIS Data Store를 생성합니다. 이후 PostGIS 레이어에 대한 서비스 Publishing은 Shapefile Publishing 과정과 동일합니다.
  40. 다양한 스타일링은 지오서버의 강력한 기능 중 하나입니다. 지오서버는 SLD를 이용하여 상업적인 서비스가 가능한 수준의 심벌링을 제공합니다.
  41. GeoServer는 지리(geospatial) 데이터를 이미지로 렌더링할 수 있으며 생성된 이미지는 브라우저에서 볼 수 있습니다. 이 과정이 바로 WMS(Web Map Service)의 핵심입니다. 그러나 지리 데이터 자체에는 시각화를 위한 어떤 정보도 포함되어 있지 않습니다. 따라서 시각화를 위해서는 스타일의 형태로 추가적인 정보가 제공되어야 합니다. GeoServer는 지리데이터를 표현하기 위해 Styled Layer Descriptor (SLD) 마크업 언어를 사용합니다. SLD는 심볼, 필터, 라벨, 최대/최소축척 등을 정의할 수 있으며 XML 기반의 OGC 표준 스펙입니다. OGC SLD 표준 스펙은 다음의 URL에서 확인이 가능합니다. http://www.opengeospatial.org/standards/sld 이 장에서는 먼저 기본 SLD 의 구조와 문법을 알아보도록 하겠습니다.
  42. SLD는 Header, FeatureTypeStyles, Rules, Symbolizers의 계층구조로 이루어져 있습니다. Header는 XML 네임스페이스(namepaces)에 대한 메타데이터를 담고 있습니다. FeatureTypeStyle은 스타일링 규칙(styling rules)의 집합이며 FeatureTypeStyle의 순서대로 렌더링을 수행합니다. Rule은 단일 스타일 지시자로 구성되며 필터 조건 및 축척별 데이터 보이기/감추기를 정의할 수 있습니다. Symbolizer는 Feature에 대한 스타일 정의와 맵 위에 Feature를 표현하는 방법을 기술하여 모양을 정의하고 색상이나 투명도 같은 그래픽 요소를 설정하는 가장 중요한 요소라 할 수 있습니다. SLD에는 하나 이상의 FeatureTypeStyle을, FeatureTypeStyle은 하나 이상의 Rule을, Rule은 하나 이상의 Symbolizer를 포함할 수 있습니다.
  43. Symbolizer는 5가지 유형이 있습니다. 각 역할은 다음과 같습니다. PointSymbolizer는 Point를 Graphic Symbol로 표현하기 위해 사용됩니다. LineSymbolizer는 Line의 색상, 굵기, 투명도 등을 표현하기 위해 사용됩니다. PolygonSymbolizer는 Polygon의 외곽선 및 내부영역을 채우는 속성이 있어 Polygon을 그리는데 사용됩니다. RasterSymbolizer는 DEM과 같은 raster/matrix-coverage data를 표현하는 방법을 정의하기 위해 사용됩니다. TextSymbolizer는 레이어의 필드 속성값을 사용하여 Label을 표현하기 위해 사용됩니다.
  44. 다음은 각각의 포인트 데이터에 대해서 간단한 6픽셀(6 size)의 빨강색(#FF0000) 원(circle)을 그리는 SLD 예제입니다. 첫 11 라인은 XML 네임 스페이스 정보를 포함한 헤더부분으로 SLD의 이름과 제목을 포함합니다. 실제 스타일링의 정보는 <FeatureTypeStyle> 태그(12-26 라인)에서 설정합니다. FeatureTypeStyle 태그는 하나의 <Rule>(13-25 라인)을 가지고 있으며 <Rule>은 하나의 <PointSymbolizer>(14-24라인)를 포함합니다. <PointSymbolizer>는 “well known name”이라는 Circle 그래픽 마크(17 라인), 원의 색상을 설정하는 <Fill> 파라미터에 RED(#FF0000, RGB), 원의 크기를 설정하는 <Size> 파라미터에 6(6 픽셀)을 설정했습니다. 이 SLD를 이용하여 GeoServer에서 그려진 결과는 오른쪽 그림과 같습니다.
  45. 다음은 속성 기반 스타일링의 예입니다. 각 피쳐의 속성값 범위에 따라 포인트 크기를 달리하는 세 가지의 Rule이 포함되어 있으며 각각의 Rule은 다음과 같은 속성조건(Filter)를 포함하고 있습니다. 피쳐의 Pop이라는 필드값에서 - 50000 미만(<ogc:PropertyIsLessThan> 태그)이면 파랑색 원의 크기가 8 50000이상(<ogc:PropertyIsGreaterThanOrEqualTo> 태그) 100000미만(<ogc:PropertyIsLessThan> 태그)이면 파랑색 원의 크기 12 100000 이상(<ogc:PropertyIsGreaterThanOrEqualTo> 태그) 이면 파랑색 원의 크기 16 으로 그린다는 의미입니다.
  46. GeoServer 문서(http://docs.geoserver.org)는 SLD Cookbook이라고 하는 챕터가 있어 SLD를 배울 수 있도록 지원합니다. 다음의 URL에 접속하여 다양한 SLD 활용법을 익힐 수 있습니다. http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/index.html
  47. GeoServer에서 Publishing된 모든 레이어는 이 레이어와 연결된 스타일(Style)을 가집니다. Shapefile이나 GeoTiff를 하나씩 로딩하는 경우에 GeoServer는 그 데이터의 Geometry 유형 등의 특성을 판단하여 기본 스타일을 지정하여 Publishing합니다. 만약 OpenGeo Suite에서 제공하는 Import Data 기능을 이용할 경우에는 각각의 레이어와 같은 이름의 스타일을 따로 생성하여 Publishing합니다. 현재 등록된 레이어의 스타일을 확인하기 위해서는 다음의 과정을 거치면 됩니다. Layer Preview 링크 메뉴를 클릭한 후 seoul:admin_sgg 레이어를 선택하고 OpenLayers 링크를 클릭하면 그림과 같이 admin_sgg 레이어에 기본값으로 적용된 스타일을 시각적으로 확인할 수 있습니다.
  48. 현재 등록된 레이어의 스타일을 확인하거나 변경하기 위해서는 다음의 과정을 거치면 됩니다. Layers 링크 메뉴를 클릭한 후 Layers 페이지에서 변경하고자 하는 레이어(seoul:admin_sgg)를 선택 후 Layer Name을 클릭한다.
  49. 이제 레이어 configuration 페이지로 돌아왔습니다. 이 페이지는 Data와 Publishing 2개의 탭으로 구성되어 있습니다. Publishing 탭을 클릭한 후 그림과 같이 Default Style 항목에 설정된 스타일을 확인합니다. 여기에서는 polygon이 기본값입니다.
  50. 이제 Styles 링크 메뉴를 클릭하여 Styles 페이지로 이동합니다. 앞에서 확인한 polygon이라는 스타일을 클릭하면 그림과 같이 웹 기반의 텍스트 편집기가 열리고 이 스타일에서 정의된 SLD 코드를 확인할 수 있습니다.
  51. 여기에서는 polygon 스타일에서 폴리곤의 색상을 파랑색(blue, #0000ff)으로 변경해 보도록 하겠습니다. #0000ff 코드는 Blue 색상의 RGB(0, 0, 255)값을 Hex Color 코드로 변환한 값입니다. 그림과 같이 텍스트 편집기에서 <sld:CssParameter name="fill“>#0000ff</sld:CssParameter> 항목을 수정합니다. 하단의 Validate 버튼을 눌러 오류 유무를 확인합니다. 오류가 없을 경우 Submit 버튼을 눌러 스타일을 갱신한 후 Layer Preview 메뉴로 이동하여 seoul:admin_sgg 레이어를 OpenLayers를 통해 확인합니다. * 주의사항 위에서 변경한 polygon 스타일은 이와 연결된 모든 레이어에 적용됩니다. 따라서 실제 서비스에 적용하기 위해서는 각 레이어별로 스타일을 생성해서 적용해야 합니다.
  52. 만약 텍스트 파일로 SLD를 저장하고 있을 경우 GeoServer는 쉽게 업로드 할 수 있습니다. 우선 샘플데이터 폴더의 C:ProgramDataBoundlessOpenGeogeoserverstyles 폴더를 확인합니다. Styles 링크 메뉴를 클릭하여 Styles 페이지의 Add a new style 링크를 클릭합니다. 빈 텍스트 편집기가 열리면 페이지의 하단부에 있는 파일 선택 버튼을 눌러 sld 폴더의 population_density.sld를 선택합니다. 이제 Upload… 버튼을 눌러 서버에 스타일을 불러옵니다.
  53. 텍스트 편집기에 SLD가 표시되고 SLD 이름이 스타일 이름으로 자동 등록됩니다. 이 SLD는 서울시 읍면동(seoul:admin_emd) 레이어의 인구밀도를 단계구분도로 정의한 스타일입니다. Validate 버튼을 눌러 오류를 확인 후 Submit 버튼을 클릭하여 GeoServer에 새로운 스타일을 등록합니다. 나머지 SLD에 대해서도 C:OpenGeoSuitesld 에 포함된 모든 레이어를 각가 스타일로 등록합니다.
  54. 스타일을 모두 등록 완료했다면 이제 각 레이어별로 스타일을 할당해 주는 일만 남았습니다. Layers 링크 메뉴를 클릭한 후 Layers 페이지에서 seoul Workspace에 포함된 레이어를 하나씩 선택하여 레이어 configuration 페이지로 이동한 후 Publishing 탭의 Style을 레이어와 일치하도록 하나씩 변경합니다. 이 그림은 seoul:admin_emd 레이어에 population_density 스타일을 적용한 후 미리보기 한 결과입니다.
  55. New Layer 페이지가 표시되면 Shapefile 서비스 Publishing 과정과 같이 설정하면 됩니다. 우선 Declared SRS 를 EPSG:2097로, SRS handling을 Force declared로 설정합니다. Bounding Boxes 섹션에서 Compute from data, Compute from native bounds 링크를 차례로 클릭합니다. 이 과정이 끝나면 Save 버튼을 눌러 레이어를 Publishing합니다.
  56. Add Raster Data Source 페이지에서 다음의 정보를 입력합니다. Connection Parameters 섹션에서는 Browse… 버튼을 눌러 C:OpenGeoSuitedataseoul_raster 폴더의 shadedrelief.tif 파일을 선택합니다. Workspace: seoul Data Source Name: shadedrelief Enabled: Checked Description: 레이어 메타정보를 입력 Connection Parameters: file://C:OpenGeoSuitedataseoul_rastershadedrelief.tif 입력이 완료되면 Save 버튼을 클릭하여 Store를 생성합니다.
  57. New Layer 페이지가 표시되면 Shapefile 서비스 Publishing 과정과 같이 설정하면 됩니다. 우선 Declared SRS 를 EPSG:2097로, SRS handling을 Force declared로 설정합니다. Bounding Boxes 섹션에서 Compute from data, Compute from native bounds 링크를 차례로 클릭합니다. 이 과정이 끝나면 Save 버튼을 눌러 레이어를 Publishing합니다.
  58. 이제 Layer Preview 페이지로 이동하면 방금 Publishing한 seoul:shadedrelief 레이어를 미리보기 할 수 있습니다. 이 레이어에 대한 심볼설정(Styling)은 다음 장에서 설명하도록 하겠습니다.
  59. 아름다운 지도에서는 글씨가 차지하는 역할이 참 큽니다.
  60. 아름다운 지도에서는 글씨가 차지하는 역할이 참 큽니다.
  61. 아름다운 지도에서는 글씨가 차지하는 역할이 참 큽니다.
  62. 아름다운 지도에서는 글씨가 차지하는 역할이 참 큽니다.
  63. 아름다운 지도에서는 글씨가 차지하는 역할이 참 큽니다.
  64. OpenGeo Suite은 GeoExplorer 외에도 Styler Extension을 이용하여 스타일 편집이 가능합니다. 가장 간단한 방법은 Layer Preview 페이지의 Styler를 클릭하여 스타일 브라우저를 이용하면 됩니다. 단. 편집을 위해서 인증 정보가 필요하며 이는 GeoServer의 admin 계정(admin/geoserver)과 동일하게 입력하면 됩니다. 스타일 편집기는 GeoExplorer와 같은 UI를 제공합니다.
  65. 아름다운 지도에서는 글씨가 차지하는 역할이 참 큽니다.
  66. Google Earth(구글 어스)는 강력한 3D 지도 뷰어입니다. GeoServer는 GeoServer에서 WMS로 서비스되는 모든 레이어가 Google Earth에 로드 될 수 있도록 기본 KML 출력을 제공합니다. 또한, Google Earth를 통해 필터, 범례, 그리고 extrudes가 가능한 추가 시각화 기능이 있습니다.
  67. Google Earth에서 GeoServer의 레이어를 시각화하는 방법은 2가지가 있습니다. 첫째, WMS의 Output으로 출력되는 KML 을 직접 Google Earth에서 불러오는 방법이고, 둘째는 Google Earth의 Network Link를 통해서 KML Stream을 연결하여 사용하는 방법입니다. 우선 Layer Preview 링크 메뉴에서 seoul:firestation 레이어를 선택하고 Google Earth 링크를 클릭합니다. 다운로드한 KML(KMZ) 파일을 파일로 저장하거나 Google Earth에서 직접 열면 됩니다.
  68. Google Earth에서 seoul:firestation 레이어를 불러옵니다. 포인트 레이어의 경우 Google Earth에서 기본 플레이스마크(Placemark)로 표시됩니다. 또한 지도상의 한 지점을 클릭했을 경우 GeoServer 템플릿에서 미리 정의된 HTML 포맷에 따라 속성확인이 가능합니다.
  69. 이번에는 Network Link 기능을 이용해서 Google Earth에서 GeoServer KML 스트림을 연결해 보도록 하겠습니다. GeoServer KML 스트림을 사용하면 GeoServer와 동적으로 연결되어 있기 때문에 GeoServer에서 정보를 업데이트하면 Google Earth에서도 바로 반영이 됩니다. Google Earth를 실행 후 추가 메뉴의 네트워크 링크 메뉴를 실행합니다. 네트워크 링크 윈도우에서 다음을 입력합니다. 이름: 서울시 읍면동 링크: http://localhost:8080/geoserver/wms/kml?layers=seoul:admin_emd 확인 버튼을 누르면 그림과 같이 서울시 읍면동 레이어가 표시됩니다.
  70. 주제도를 지도에서 탐색하는 경우 범례는 많은 도움이 됩니다. 이번에는 Google Earth 지도상에 범례를 표시해 보도록 하겠습니다. 우선 내 장소 목록에서 앞에서 추가한 서울시 읍면동을 선택한 후 오른쪽 마우스를 눌러 속성을 수정합니다. 네트워크 링크 윈도우의 링크 URL에서 다음을 추가로 입력합니다. 링크: http://localhost:8080/geoserver/wms/kml?layers=seoul:admin_emd&legend=true 확인 버튼을 누르면 그림과 같이 지도에 범례가 표시됩니다.
  71. 레전드 기능은 많이 필요하면서도 구현하기 힘든 기능 중 하나입니다. 보통 이미지로 만들어 많이 쓰는데 이렇게 하면 자료의 표현이 바뀌어도 범례가 바뀌지 않는 문제가 있습니다. GetLegendGraphic을 이용한 범례기능의 사용을 적극 추천합니다.
  72. GeoServer는 EPSG에 정의된 모든 좌표계를 지원합니다. 더욱이 이를 실시간으로 변환하여 제공합니다. EPSG 코드와 해당 좌표계에서의 범위값을 알면 변환된 지도를 만들 수 있습니다.
  73. URL의 시작이 http://으로 시작하고 wms 로 끝남에 주의하세요.
  74. URL의 시작이 http://으로 시작하고 wfs 로 끝남에 주의하세요.
  75. Google Earth(구글 어스)는 강력한 3D 지도 뷰어입니다. GeoServer는 GeoServer에서 WMS로 서비스되는 모든 레이어가 Google Earth에 로드 될 수 있도록 기본 KML 출력을 제공합니다. 또한, Google Earth를 통해 필터, 범례, 그리고 extrudes가 가능한 추가 시각화 기능이 있습니다.
  76. GeoServer에 대한 더 많은 정보는 다음의 사이트에서 확인하십시오. 수고하셨습니다.