㈜지앤티솔루션
김성건 (sgkim@gntsolution.com)
목차
1. GeoServer 개요
2. GeoServer 설치
3. Data Publishig
4. Map Styling
5. Styling 고급
6. 재미있는 기능들
7. 성능향상 전략
2
1. GeoServer 개요
 1.1 GeoServer란?
 1.2 GeoServer가 하는 일

 1.3 WMS 인터페이스
 1.4 WFS 인터페이스
 1.5 WCS 인터페이스
 1.6 GeoServer의 주요 특징
 1.7 지원 포맷 일람
3
다양한 공간 Data를
인터넷 GIS 인터페이스로

공급하는 서버 프로그램
4
GeoServer

Raster
Source

Formatted
Map

png, jpeg, gif

WFS

Vector
Source

WMS

Feature
Object

GML, GeoJSON

WCS

Coverage
Data

ArcGrid, GeoTif
f, bmp

Vector Source: Shape, GeoDB
Raster Source: GeoTiff, IMG, ArcGrid
5
 Web Map Service

-

OGC가 정의한 지도이미지 인터페이스 표준
요청방법과 응답형식을 정의
지도요청, 카타로그조회, 속성조회 가능
Http로 요청하고 이미지로 받음
필수: GetCapabilities , GetMap
옵션: GetFeatureInfo, DescribeLayer,
GetLegendGraphic

* OGC : Open Geospatial Consortium

6
 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=
EPSG:4326&BBOX=-180,-90,180,90&WIDTH=1000&HEIGHT=500
-

http://neowms.sci.gsfc.nasa.gov/wms/wms?version=1.1.1&SERVICE=WMS&
REQUEST=GetMap&LAYERS=MOD_LSTN_CLIM_M&FORMAT=image/jpeg&
SRS=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&
REQUEST=GetMap&LAYERS=MOD14A1_M_FIRE&FORMAT=image/jpeg&S
RS=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
7
 Web Feature Service

- OGC가 정의한 지리적 피처(Feature)인터페이스
표준
- 요청방법과 응답형식을 정의
- 피처요청, 카타로그조회, 속성조회 가능
- Http로 요청하고 XML, GeoJSON 등으로 받음
- 필수: GetCapabilities , DescribeFeatureType ,
GetFeature
※Feature = Geometry + attiribute
8
 Web Feature Service

- http://www.openlayers.org/dev/examples/strategy-paging.html
http://api.flickr.com/services/rest?api_key=b5e8c0e287e678671
c3d8b2c0f3ced85&method=flickr.photos.search&extras=geo,url
_s&per_page=10&page=1&bbox=27.597656621345,31.902271618769,17.402343378655,48.9865
86775023
http://api.flickr.com/services/rest?format=json&api_key=b5e8c0
e287e678671c3d8b2c0f3ced85&method=flickr.photos.search&e
xtras=geo,url_s&maxfeatures=100&BBOX=124,34,131,40

9
 Web Coverage Service

OGC가 정의한 커버리지 인터페이스 표준
요청방법과 응답형식을 정의
커버리지요청, 카타로그조회 가능
Http로 요청하고 래스터 파일로 받음
필수: GetCapabilities , DescribeCoverage ,
GetCoverage
※Coverage = 좌표가 있는 Raster Data
-

10
 Web Coverage Service

- http://demo.mapserver.org/cgibin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=GetCa
pabilities
- http://demo.mapserver.org/cgibin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=Descri
beCoverage&COVERAGE=modis
- http://demo.mapserver.org/cgibin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=GetCo
verage&COVERAGE=modis001&CRS=EPSG:26915&BBOX=159707,4597395,1400707,
5501395&WIDTH=400&HEIGHT=300&FORMAT=GEOTIFF_
RGB
11
 사용 편한 UI 제공
 WEB 기반의 Admin 페이지
 OS에 구애 받지 않음
 JAVA 기반, WEB 인터페이스기반
 캐시 지원
 서버 캐시(GWC), Cache-Control
 다양한 좌표계로 실시간 변환 가능
 2.1.3 버전부터 국내 좌표계도 모두 지원
 Data Processing도 가능
 WPS (참고: http://www.onspatial.com/2009/12/ogc-wpsoperation-quick-reference.html)
 거의 모든 GIS 자료 이용 가능
12
Input
Format

Vector File ESRI Shape, GML, VPF, JAVA Property
GeoTIFF, Gtopo30, WorldImage, ArcGrid, GDAL Suffor

Raster File t Format(IMG, MrSID, ECW, JPEG2000, DTED, NITF)

PostGIS, Oracle, ArcSDE, SQL Server, MySQL, DB2, Ki

Geo DBMS aros, Tibro
Web
WFS, WMS
Interface

Output
Format

WMS

WFS

WCS

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
13
 2.1 GeoServer 설치
 2.2 Dashboard

 2.3 서비스 시작과 종료
 2.4 관리용 UI
 2.5 Layer 미리보기

14
 다운로드 사이트
 OpenGeo Suite 커뮤니티 버전
http://opengeo.org/products/suite/community/

 OpenGeo Suite 상용 버전
http://opengeo.org/products/suite/register/
 독립형 GeoServer 버전
http://geoserver.org/display/GEOS/Download
※ OpenGeo Suite 버전이 확장 기능 더 많음
※ 독립형 버전은 Service로 설치 가능
※ 상용서버에는 War로 설치하는 것을 권장
15
 OpenGeo Suite 버전

16
 독립형 버전 서비스 설치
 설치 마지막 단계에서

Install as a Service옵션
선택
 서비스로 설치하면
리부팅해도 자동으로
GeoServer가 실행됨
 테스트용 설치는
Run manually 권장

17
 War 버전 설치
 상용 WAS가 설치된 경우 이용
 WAS 별로 war 파일 배포법 다름
 Tomcat인 경우 webapp 폴더에
복사하는 것으로 설치 완료
 기타 WAS의 경우 UI나 명령으로
손쉽게 배포 가능

18
윈도우 시작메뉴

윈도우 탐색기 사용자 디렉터리
19
 시작메뉴 이용
 윈도우OS의 경우 시작메뉴를 통해 GeoServer

를 시작하고 종료 가능
 OpenGeo Suite 버전의 경우 PostGIS와 동시에
시작과 종료되기에 시간이 더 많이 걸림

20
 서비스로 등록한 경우

21
 시작하기
 브라우저 이용
http://localhost:8080/geoserver/
IE 사용 비권장

 데시보드 이용
GeoServer-Configure

22
 로그인
 기본비번: admin / geoserver

23
 관리용 UI의 역할

24
 정보 & 상태 섹션
 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 결과물을 확인 할 수 있습니다.

25
26
 미리보기 옵션 활성화

27
 CQL을 이용한 필터링

28
3. Data Publishing
 3.1 Data Publishing 과정
 3.2 Workspace 추가하기
 3.3 Shapefile 서비스하기
 3.4 GeoTIFF 서비스하기
 3.5 PostGIS 레이어 서비스하기
 3.6 여러 레이어를 한번에 퍼블리싱

29
 Workspace 생성
 자료를 관리를 위한 그룹
 보통 업무 프로젝트 단위로 생성

 Store 생성
 자료의 물리적 위치를 등록

 폴더, DBMS, 파일 등 등록

 Style 생성 (옵션)
 자료를 표현하는 방법을 상세히 정의

 Layer 생성
 실제 개별 자료를 등록

 Data와 Publishing 섹션으로 구성

 Layer Group 생성 (옵션)
 관련 자료를 묶어서 제공

 캐시 설정 (옵션)
 서비스 효율화
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Postgresql 9.3 설치 확인하기
- postgis

44
45
46
이후 과정은 shp 파일 서비스하기와 동일함

47
48
49
50
가져온 결과는 레이어 메뉴에서 확인

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

* Featuretype 이 layer 를 말함

 Symbolizer
•
•
•
•
•

PointSymbolizer
LineSymbolizer
PolygonSymbolizer
RasterSymbolizer
TextSymbolizer
55
56
Header

Symbolizer

57
58
 SLD Cookbook


http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/index.html

59
 권장사항
 레이어 하나당 하나의 스타일 만들것
 레이어명과 스타일명 같으면 편리

60
61
62
63
 기존 스타일 수정

64
 SLD 로드로 새 스타일 만들기

65
 SLD 로드로 새 스타일 만들기

66
 스타일 적용 확인

67
68
69
 스타일 복사 및 신규생성
 스타일 적용
 1~256의 값을 색으로
표현 필요
 실습:
raster 스타일을 복사 후
ShadedRelief 명칭의
스타일 생성.
Styles에 등록
 ShadedRelief 레이어의
Publishing 탭에서 적용

70
71
72
 data/seoul 폴더의 모든 Shape을 등록해 주세요.
 등록이 잘 안되는 한 개의 파일이 있습니다.
 어찌 극복하셨나요?
 data/seoul_raster 폴더의 모든 이미지를 등록해 주

세요.
 SLD 폴더의 모든 sld 파일을 스타일로 등록해 주세
요.
 등록이 안되는 한 SLD가 있습니다.
 다른 스타일을 참고해 해결해 보세요.

 등록한 모든 자료와 스타일을 연결하여 멋지게 보

이게 해 주세요.

 같이 공부할 때 해보시면 나중에 고생이 덜합니다.
73
5. Styling 고급
 5.1 GeoExplorer 이용
 5.2 포인트 스타일 변경
 5.3 라인 스타일 변경
 5.4 폴리곤 스타일 변경
 5.5 텍스트 스타일 변경
 5.6 조건에 따른
 5.7 한글폰트 적용
 5.8 레이어 그룹
74
 http://localhost:8080/geoexplorer

※ OpenGeo Suite 버전에서만 사용 가능합니다.

75
추가하고자 하는 레이어를 더블클릭!!

76
77
78
79
80
81
82
83
<sld:FeatureTypeStyle>
<sld:Name>name</sld:Name>
<sld:Rule>
<sld:Title>stores</sld:Title>
<ogc:Filter>
<ogc:PropertyIsLike wildCard="*" singleChar="." escape="!">
<ogc:PropertyName>BRAND</ogc:PropertyName>
<ogc:Literal>*백화점</ogc:Literal>
</ogc:PropertyIsLike>
</ogc:Filter>
<sld:PointSymbolizer>
<sld:Graphic>
<sld:Mark>
<sld:WellKnownName>circle</sld:WellKnownName>
<sld:Fill>
<sld:CssParameter name="fill">#00FFD5</sld:CssParameter>
</sld:Fill>
<sld:Stroke/>
</sld:Mark>
<sld:Size>
<ogc:Literal>7</ogc:Literal>
</sld:Size>
</sld:Graphic>
</sld:PointSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>

84
 GeoServer의 버그로 주의 필요
 Style에서 population_density 편집
 첫줄의 UTF-8을 EUC-KR로 수정
 font-family 부분을 검색
 값을 „맑은 고딕‟으로 변경
 [Submit] 선택하여 저장
 Preview로 적용 확인
 레이어 그룹의 필요성
 지도는 보통 여러 레이어를 조합해 사용
 여러 레이어 조합시 순서가 매우 중요
 호출시에도 한 레이어 처럼 호출 가능
※ 리스트에서 가장 위의 레이어가 가장 먼저 그려져 다른 레이어에 의
해 덮어짐
6. 재미있는 기능들
 6.1 Google Earth 연동
 6.2 GetLegendGraphic
 6.3 실시간 좌표계 변환

 6.4 QGIS에서 WMS 불러오기
 6.5 QGIS에서 WFS 불러오기

87
88
89
90
91
 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

92
http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=
GetMap&layers=world&styles=&width=660&height=330&format=application/o
penlayers&srs=EPSG:4326&bbox=110,20,150,50

Google

WGS84
http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=
GetMap&layers=world&styles=&width=660&height=330&format=application/o
penlayers&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=application/o
penlayers&srs=EPSG:32652&bbox=1516012.385514,2328845.36574506,1998458.72659911,5753394.63053658

UTM52N

TM 중부
좌표계 변환된
범위 계산
SQL

http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=
GetMap&layers=world&styles=&width=660&height=330&format=application/o
penlayers&srs=EPSG:900913&bbox=12245143.9872601,2273030.92698769,
16697923.618991,6446275.84101716

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));

93
94
95
7. 성능향상 전략
 7.1 Web Cache Logic 이해
 7.2 Response Cache Header 적용
 7.3 Geo Web Cache(GWC) 적용
 7.4 서버 설정 변경

 7.5 데이터 폴더 이동
 7.5 데이터 최적화

96
 Text

Web Browser
URI 요청

 Text

Browser Cache 확인
있는가?

No

컨텐츠 요청

Expire

헤더에 If-Modified-Since:
LastModifiedTime 붙여 요청

Yes

유효기간?
Remain

GIS Server

Browser Cache Hit!

0.1 ms

새 버전이 있는가?
No

304 not modified
컨텐츠 사용

10 ms

Yes

서버캐시에 있는가?

No

컨텐츠 생산
(GeoServer)

Yes

200 OK + 컨텐츠 전송

50 ms

500 ms

End

97
⑥Check
browser cache
and reuse

Browser Cache
•

Client A
Browse
Cache

Browse
Cache
⑦Request Contents

①Request Contents

⑤Request
Same Contents

②Check cache
and ask the
Production

•

Client B

On each client
machine
Can not share with
others

App Server

⑧Check cache
and reuse

Server Cache
Contents

Builder

③Storage Contents

Server
Cache

•
•

On server machine
Can share with
others

98
 GeoServer Admin 화면 접속
 왼쪽 Data 항목 중 Layers 선택
 WorldCountries Layer 선택
 Publishing 탭 선택
 Edit Layer 아래 Response

Cache Headers 체크
 Cache Time에 초단위로 컨텐츠
유효기간 604800 (7일) 입력.
60초 * 60분 *24시간 * 7일 =
604800
 [Save] 눌러 완료
99
 GeoServer Admin 화면 접속
 왼쪽 Data 항목 중 Layer Preview 선택
 demo:WorldCountries Layer의









Cache가 되려면 Tiled로
호출하여야만 한다!

OpenLayers 선택
지도창이 뜨면 Http 헤더 분석도구로
Response 확인 (Chrome [F12], FireFox
FireBug, IE HttpWatch)
Response Header 부분에 Expires, CacheControl: max-age=604800 값이 추가되었
음을 확인
휠로 줌 인, 줌 아웃 반복  별로 빨라지
지 않은 것 같다 ㅠㅠ
지도 우상단의 옵션버튼
클릭
Tiling에서 Tiled 선택
휠로 줌 인, 줌 아웃 반복  이번엔 확실
히 빨라진 것이 보인다.
100
•

지도가 나타내는 영역을 일정한 간격의 연속된
사각형 이미지로 미리 만들어 저장소에 저장

•

타일 이미지는 PNG/JPG등 다양한 포맷으로 생성
가능

• 타일영역을 레벨별로 피라미드화 하여 캐시 이미
지 저장
• 레벨별 해상도(resolution), 축척(scale)을 설정하
여 레벨 규칙을 정함

• 일반적으로 전국레벨의 캐시 이미지를 생성하는
데에는 많은 시간적인 자원을 필요로함
• 일부 많이 사용될 것으로 예상되는 지역 또는 많
은 형상들이 집중되어있는 부분을 지정하여 캐
시 설정하여 해결
101








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);

104
 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 기능 사용
105
 Logging 정책 변경

 관리 UI의 global Setting에서 조정할 수 있다.
 DEFAULT, VERBOSE, PRODUCTION,

GEOTOOLS_DEVELOPER,
GEOSERVER_DEVELOPER로 정책 변경 가능하다.
 PRODUCTION이 가장 적은 정보를 기록하므로
빠르다.

 Service Strategy 변경

 GeoServer의 web.xml 파일에서 조정 가능하다.
 SPEED는 스트리밍만으로 결과를 보내 빠르지만

안정성 떨어진다.
 BUFFER는 모든 결과를 메모리에 만든후 서비스
한다.
 FILE은 모든 결과를 파일로 만든 후 서비스 한다.
 PARTIAL-BUFFER는 BUFFER과 SPEED를 결합한
형태로 빠르고 어느정도 안정성도 있다.

106
 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>
107
 Vector Data

 서비스할 좌표계로 소스데이터 미리 변환하라!
 GeoServer는 실시간 좌표계 변환도 잘 지원한다.
 하지만 실시간 변환은 느릴 수 밖에 없다.
 스타일을 이용하여 적당한 정보만 표출되게 제어하라!
 스타일 정보를 조정하여 스케일에 따라 적정한 레이어만 보이게 한다.
 같은 레이어도 스케일에 따라 적절한 심벌이 부여되게 한다.
 피처를 다듬어라!
 피처를 정규화(Simplofiy)하여 불필요한 점을 없엔다.
 각 스케일에 맞게 정규화된 어러 레이어를 사용하면 효과적이다.
 지나치게 넓은 범위의 MBR을 가지는 피처는 적절히 분리한다.
 느린 스타일의 사용을 최소화하라!
 투명도(Transparecy)의 사용은 기본적으로 2배 이상의 랜더링 시간이 걸
린다.
 라벨을 뿌리는 것은 비싼 비용을 각오해야 한다.
 라벨에 테두리(Halo)를 주는 것은 더 비산 비용이 필요하다.
108
 Raster Data

 JPEG나 ArcGRID의 사용을 자제하라!
 이런 포맷들은 디코딩에 많은 비용이 든다.
 가능한 한 인코딩 되지 않은 GeoTiff를 사용하라.
 ECW나 JPEG2000와 같은 진보된 웨이블릿 포맷도 바람직하다.
 다단계 타일링 된 GeoTiff를 사용하라!
 GDAL 툴인 gdaladdo 명령을 이용하면 다단계 타일링된 GeoTiff를 만들
수 있다.
 Ex) gdaladdo -r average mytiff.tif 2 4 8 16
 가능한 한, 영상을 합쳐라!
 여러 장의 영상을 여러 레이어로 서비스 하는 것이 가장 느리다.
 여러 장의 영상을 레이어 그룹으로 묶어 서비스 하면 조금(아주조금) 빨
라진다.
 한 개의 영상으로 합처 서비스 하면 많이 빨라진다.
 하지만 약 4GB 이상의 영상은 보통 GeoServer에 올릴 수 없기에 나눌 수
밖에 없다.

109
 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

110
 GeoServer
 http://geoserver.org
 GeoServer Documentation
 http://docs.geoserver.org/latest/en/user/
 GeoServer 한글 Documentation
 GeoServer 2.0.0 설치 및 활용 가이드
 GeoWebCache
 http://geowebcache.org/
 MakingMapsFast
 http://download.osgeo.org/osgeo/foss4g/2009/SPREP
/1Wed/Parkside%20GO3/1500/MakingMapsFast.pdf
111

GeoServer 기초

  • 1.
  • 2.
    목차 1. GeoServer 개요 2.GeoServer 설치 3. Data Publishig 4. Map Styling 5. Styling 고급 6. 재미있는 기능들 7. 성능향상 전략 2
  • 3.
    1. GeoServer 개요 1.1 GeoServer란?  1.2 GeoServer가 하는 일  1.3 WMS 인터페이스  1.4 WFS 인터페이스  1.5 WCS 인터페이스  1.6 GeoServer의 주요 특징  1.7 지원 포맷 일람 3
  • 4.
    다양한 공간 Data를 인터넷GIS 인터페이스로 공급하는 서버 프로그램 4
  • 5.
    GeoServer Raster Source Formatted Map png, jpeg, gif WFS Vector Source WMS Feature Object GML,GeoJSON WCS Coverage Data ArcGrid, GeoTif f, bmp Vector Source: Shape, GeoDB Raster Source: GeoTiff, IMG, ArcGrid 5
  • 6.
     Web MapService - OGC가 정의한 지도이미지 인터페이스 표준 요청방법과 응답형식을 정의 지도요청, 카타로그조회, 속성조회 가능 Http로 요청하고 이미지로 받음 필수: GetCapabilities , GetMap 옵션: GetFeatureInfo, DescribeLayer, GetLegendGraphic * OGC : Open Geospatial Consortium 6
  • 7.
     Web MapService - http://neowms.sci.gsfc.nasa.gov/wms/wms?version=1.1.1&SERVICE=WMS& REQUEST=GetMap&LAYERS=BlueMarbleNG&FORMAT=image/jpeg&SRS= EPSG:4326&BBOX=-180,-90,180,90&WIDTH=1000&HEIGHT=500 - http://neowms.sci.gsfc.nasa.gov/wms/wms?version=1.1.1&SERVICE=WMS& REQUEST=GetMap&LAYERS=MOD_LSTN_CLIM_M&FORMAT=image/jpeg& SRS=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& REQUEST=GetMap&LAYERS=MOD14A1_M_FIRE&FORMAT=image/jpeg&S RS=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 7
  • 8.
     Web FeatureService - OGC가 정의한 지리적 피처(Feature)인터페이스 표준 - 요청방법과 응답형식을 정의 - 피처요청, 카타로그조회, 속성조회 가능 - Http로 요청하고 XML, GeoJSON 등으로 받음 - 필수: GetCapabilities , DescribeFeatureType , GetFeature ※Feature = Geometry + attiribute 8
  • 9.
     Web FeatureService - http://www.openlayers.org/dev/examples/strategy-paging.html http://api.flickr.com/services/rest?api_key=b5e8c0e287e678671 c3d8b2c0f3ced85&method=flickr.photos.search&extras=geo,url _s&per_page=10&page=1&bbox=27.597656621345,31.902271618769,17.402343378655,48.9865 86775023 http://api.flickr.com/services/rest?format=json&api_key=b5e8c0 e287e678671c3d8b2c0f3ced85&method=flickr.photos.search&e xtras=geo,url_s&maxfeatures=100&BBOX=124,34,131,40 9
  • 10.
     Web CoverageService OGC가 정의한 커버리지 인터페이스 표준 요청방법과 응답형식을 정의 커버리지요청, 카타로그조회 가능 Http로 요청하고 래스터 파일로 받음 필수: GetCapabilities , DescribeCoverage , GetCoverage ※Coverage = 좌표가 있는 Raster Data - 10
  • 11.
     Web CoverageService - http://demo.mapserver.org/cgibin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=GetCa pabilities - http://demo.mapserver.org/cgibin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=Descri beCoverage&COVERAGE=modis - http://demo.mapserver.org/cgibin/wcs?SERVICE=wcs&VERSION=1.0.0&REQUEST=GetCo verage&COVERAGE=modis001&CRS=EPSG:26915&BBOX=159707,4597395,1400707, 5501395&WIDTH=400&HEIGHT=300&FORMAT=GEOTIFF_ RGB 11
  • 12.
     사용 편한UI 제공  WEB 기반의 Admin 페이지  OS에 구애 받지 않음  JAVA 기반, WEB 인터페이스기반  캐시 지원  서버 캐시(GWC), Cache-Control  다양한 좌표계로 실시간 변환 가능  2.1.3 버전부터 국내 좌표계도 모두 지원  Data Processing도 가능  WPS (참고: http://www.onspatial.com/2009/12/ogc-wpsoperation-quick-reference.html)  거의 모든 GIS 자료 이용 가능 12
  • 13.
    Input Format Vector File ESRIShape, GML, VPF, JAVA Property GeoTIFF, Gtopo30, WorldImage, ArcGrid, GDAL Suffor Raster File t Format(IMG, MrSID, ECW, JPEG2000, DTED, NITF) PostGIS, Oracle, ArcSDE, SQL Server, MySQL, DB2, Ki Geo DBMS aros, Tibro Web WFS, WMS Interface Output Format WMS WFS WCS 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 13
  • 14.
     2.1 GeoServer설치  2.2 Dashboard  2.3 서비스 시작과 종료  2.4 관리용 UI  2.5 Layer 미리보기 14
  • 15.
     다운로드 사이트 OpenGeo Suite 커뮤니티 버전 http://opengeo.org/products/suite/community/  OpenGeo Suite 상용 버전 http://opengeo.org/products/suite/register/  독립형 GeoServer 버전 http://geoserver.org/display/GEOS/Download ※ OpenGeo Suite 버전이 확장 기능 더 많음 ※ 독립형 버전은 Service로 설치 가능 ※ 상용서버에는 War로 설치하는 것을 권장 15
  • 16.
  • 17.
     독립형 버전서비스 설치  설치 마지막 단계에서 Install as a Service옵션 선택  서비스로 설치하면 리부팅해도 자동으로 GeoServer가 실행됨  테스트용 설치는 Run manually 권장 17
  • 18.
     War 버전설치  상용 WAS가 설치된 경우 이용  WAS 별로 war 파일 배포법 다름  Tomcat인 경우 webapp 폴더에 복사하는 것으로 설치 완료  기타 WAS의 경우 UI나 명령으로 손쉽게 배포 가능 18
  • 19.
  • 20.
     시작메뉴 이용 윈도우OS의 경우 시작메뉴를 통해 GeoServer 를 시작하고 종료 가능  OpenGeo Suite 버전의 경우 PostGIS와 동시에 시작과 종료되기에 시간이 더 많이 걸림 20
  • 21.
  • 22.
     시작하기  브라우저이용 http://localhost:8080/geoserver/ IE 사용 비권장  데시보드 이용 GeoServer-Configure 22
  • 23.
     로그인  기본비번:admin / geoserver 23
  • 24.
  • 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 결과물을 확인 할 수 있습니다. 25
  • 26.
  • 27.
  • 28.
  • 29.
    3. Data Publishing 3.1 Data Publishing 과정  3.2 Workspace 추가하기  3.3 Shapefile 서비스하기  3.4 GeoTIFF 서비스하기  3.5 PostGIS 레이어 서비스하기  3.6 여러 레이어를 한번에 퍼블리싱 29
  • 30.
     Workspace 생성 자료를 관리를 위한 그룹  보통 업무 프로젝트 단위로 생성  Store 생성  자료의 물리적 위치를 등록  폴더, DBMS, 파일 등 등록  Style 생성 (옵션)  자료를 표현하는 방법을 상세히 정의  Layer 생성  실제 개별 자료를 등록  Data와 Publishing 섹션으로 구성  Layer Group 생성 (옵션)  관련 자료를 묶어서 제공  캐시 설정 (옵션)  서비스 효율화 30
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
    Postgresql 9.3 설치확인하기 - postgis 44
  • 45.
  • 46.
  • 47.
    이후 과정은 shp파일 서비스하기와 동일함 47
  • 48.
  • 49.
  • 50.
  • 51.
    가져온 결과는 레이어메뉴에서 확인 51
  • 52.
    4. Map Styling 4.1 SLD의 이해  4.2 SLD Sample  4.3 적용된 스타일 확인  4.4 Vector 스타일 수정  4.5 Raster 스타일 수정 52
  • 53.
     Styled LayerDescriptor(SLD)란? • 벡터 및 래스터 레이어 시각화를 위한 스타일 • • • • 마크업 언어 심볼, 필터, 라벨, 최대/최소축척 등을 정의 WMS의 핵심 XML 기반의 OGC 표준 스펙 http://www.opengeospatial.org/standards/sld 53
  • 54.
     SLD로 할수 있는 것  점 도형/색/크기/아이콘 등 설정  선 색/두께/점선/연결방법 등 설정  면 색/패턴채움/이미지채움 등 설정  텍스트 참조컬럼/색/강조/위치/회전 등 설정  투명도 조절  축척에 따른 자료 보이기  조건에 따른 자료 표현(가시/크기/색/회전/아이 콘 등) 변경 54
  • 55.
     SLD hierarchicalstructure • Header • FeatureTypeStyles • Rules • Symbolizers * Featuretype 이 layer 를 말함  Symbolizer • • • • • PointSymbolizer LineSymbolizer PolygonSymbolizer RasterSymbolizer TextSymbolizer 55
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
     권장사항  레이어하나당 하나의 스타일 만들것  레이어명과 스타일명 같으면 편리 60
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
     SLD 로드로새 스타일 만들기 65
  • 66.
     SLD 로드로새 스타일 만들기 66
  • 67.
  • 68.
  • 69.
  • 70.
     스타일 복사및 신규생성  스타일 적용  1~256의 값을 색으로 표현 필요  실습: raster 스타일을 복사 후 ShadedRelief 명칭의 스타일 생성. Styles에 등록  ShadedRelief 레이어의 Publishing 탭에서 적용 70
  • 71.
  • 72.
  • 73.
     data/seoul 폴더의모든 Shape을 등록해 주세요.  등록이 잘 안되는 한 개의 파일이 있습니다.  어찌 극복하셨나요?  data/seoul_raster 폴더의 모든 이미지를 등록해 주 세요.  SLD 폴더의 모든 sld 파일을 스타일로 등록해 주세 요.  등록이 안되는 한 SLD가 있습니다.  다른 스타일을 참고해 해결해 보세요.  등록한 모든 자료와 스타일을 연결하여 멋지게 보 이게 해 주세요.  같이 공부할 때 해보시면 나중에 고생이 덜합니다. 73
  • 74.
    5. Styling 고급 5.1 GeoExplorer 이용  5.2 포인트 스타일 변경  5.3 라인 스타일 변경  5.4 폴리곤 스타일 변경  5.5 텍스트 스타일 변경  5.6 조건에 따른  5.7 한글폰트 적용  5.8 레이어 그룹 74
  • 75.
     http://localhost:8080/geoexplorer ※ OpenGeoSuite 버전에서만 사용 가능합니다. 75
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
    <sld:FeatureTypeStyle> <sld:Name>name</sld:Name> <sld:Rule> <sld:Title>stores</sld:Title> <ogc:Filter> <ogc:PropertyIsLike wildCard="*" singleChar="."escape="!"> <ogc:PropertyName>BRAND</ogc:PropertyName> <ogc:Literal>*백화점</ogc:Literal> </ogc:PropertyIsLike> </ogc:Filter> <sld:PointSymbolizer> <sld:Graphic> <sld:Mark> <sld:WellKnownName>circle</sld:WellKnownName> <sld:Fill> <sld:CssParameter name="fill">#00FFD5</sld:CssParameter> </sld:Fill> <sld:Stroke/> </sld:Mark> <sld:Size> <ogc:Literal>7</ogc:Literal> </sld:Size> </sld:Graphic> </sld:PointSymbolizer> </sld:Rule> </sld:FeatureTypeStyle> 84
  • 85.
     GeoServer의 버그로주의 필요  Style에서 population_density 편집  첫줄의 UTF-8을 EUC-KR로 수정  font-family 부분을 검색  값을 „맑은 고딕‟으로 변경  [Submit] 선택하여 저장  Preview로 적용 확인
  • 86.
     레이어 그룹의필요성  지도는 보통 여러 레이어를 조합해 사용  여러 레이어 조합시 순서가 매우 중요  호출시에도 한 레이어 처럼 호출 가능 ※ 리스트에서 가장 위의 레이어가 가장 먼저 그려져 다른 레이어에 의 해 덮어짐
  • 87.
    6. 재미있는 기능들 6.1 Google Earth 연동  6.2 GetLegendGraphic  6.3 실시간 좌표계 변환  6.4 QGIS에서 WMS 불러오기  6.5 QGIS에서 WFS 불러오기 87
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
     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 92
  • 93.
    http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request= GetMap&layers=world&styles=&width=660&height=330&format=application/o penlayers&srs=EPSG:4326&bbox=110,20,150,50 Google WGS84 http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request= GetMap&layers=world&styles=&width=660&height=330&format=application/o penlayers&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=application/o penlayers&srs=EPSG:32652&bbox=1516012.385514,2328845.36574506,1998458.72659911,5753394.63053658 UTM52N TM 중부 좌표계 변환된 범위계산 SQL http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request= GetMap&layers=world&styles=&width=660&height=330&format=application/o penlayers&srs=EPSG:900913&bbox=12245143.9872601,2273030.92698769, 16697923.618991,6446275.84101716 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)); 93
  • 94.
  • 95.
  • 96.
    7. 성능향상 전략 7.1 Web Cache Logic 이해  7.2 Response Cache Header 적용  7.3 Geo Web Cache(GWC) 적용  7.4 서버 설정 변경  7.5 데이터 폴더 이동  7.5 데이터 최적화 96
  • 97.
     Text Web Browser URI요청  Text Browser Cache 확인 있는가? No 컨텐츠 요청 Expire 헤더에 If-Modified-Since: LastModifiedTime 붙여 요청 Yes 유효기간? Remain GIS Server Browser Cache Hit! 0.1 ms 새 버전이 있는가? No 304 not modified 컨텐츠 사용 10 ms Yes 서버캐시에 있는가? No 컨텐츠 생산 (GeoServer) Yes 200 OK + 컨텐츠 전송 50 ms 500 ms End 97
  • 98.
    ⑥Check browser cache and reuse BrowserCache • Client A Browse Cache Browse Cache ⑦Request Contents ①Request Contents ⑤Request Same Contents ②Check cache and ask the Production • Client B On each client machine Can not share with others App Server ⑧Check cache and reuse Server Cache Contents Builder ③Storage Contents Server Cache • • On server machine Can share with others 98
  • 99.
     GeoServer Admin화면 접속  왼쪽 Data 항목 중 Layers 선택  WorldCountries Layer 선택  Publishing 탭 선택  Edit Layer 아래 Response Cache Headers 체크  Cache Time에 초단위로 컨텐츠 유효기간 604800 (7일) 입력. 60초 * 60분 *24시간 * 7일 = 604800  [Save] 눌러 완료 99
  • 100.
     GeoServer Admin화면 접속  왼쪽 Data 항목 중 Layer Preview 선택  demo:WorldCountries Layer의       Cache가 되려면 Tiled로 호출하여야만 한다! OpenLayers 선택 지도창이 뜨면 Http 헤더 분석도구로 Response 확인 (Chrome [F12], FireFox FireBug, IE HttpWatch) Response Header 부분에 Expires, CacheControl: max-age=604800 값이 추가되었 음을 확인 휠로 줌 인, 줌 아웃 반복  별로 빨라지 지 않은 것 같다 ㅠㅠ 지도 우상단의 옵션버튼 클릭 Tiling에서 Tiled 선택 휠로 줌 인, 줌 아웃 반복  이번엔 확실 히 빨라진 것이 보인다. 100
  • 101.
    • 지도가 나타내는 영역을일정한 간격의 연속된 사각형 이미지로 미리 만들어 저장소에 저장 • 타일 이미지는 PNG/JPG등 다양한 포맷으로 생성 가능 • 타일영역을 레벨별로 피라미드화 하여 캐시 이미 지 저장 • 레벨별 해상도(resolution), 축척(scale)을 설정하 여 레벨 규칙을 정함 • 일반적으로 전국레벨의 캐시 이미지를 생성하는 데에는 많은 시간적인 자원을 필요로함 • 일부 많이 사용될 것으로 예상되는 지역 또는 많 은 형상들이 집중되어있는 부분을 지정하여 캐 시 설정하여 해결 101
  • 104.
          Enable direct integrationwith 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); 104
  • 105.
     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 기능 사용 105
  • 106.
     Logging 정책변경  관리 UI의 global Setting에서 조정할 수 있다.  DEFAULT, VERBOSE, PRODUCTION, GEOTOOLS_DEVELOPER, GEOSERVER_DEVELOPER로 정책 변경 가능하다.  PRODUCTION이 가장 적은 정보를 기록하므로 빠르다.  Service Strategy 변경  GeoServer의 web.xml 파일에서 조정 가능하다.  SPEED는 스트리밍만으로 결과를 보내 빠르지만 안정성 떨어진다.  BUFFER는 모든 결과를 메모리에 만든후 서비스 한다.  FILE은 모든 결과를 파일로 만든 후 서비스 한다.  PARTIAL-BUFFER는 BUFFER과 SPEED를 결합한 형태로 빠르고 어느정도 안정성도 있다. 106
  • 107.
     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> 107
  • 108.
     Vector Data 서비스할 좌표계로 소스데이터 미리 변환하라!  GeoServer는 실시간 좌표계 변환도 잘 지원한다.  하지만 실시간 변환은 느릴 수 밖에 없다.  스타일을 이용하여 적당한 정보만 표출되게 제어하라!  스타일 정보를 조정하여 스케일에 따라 적정한 레이어만 보이게 한다.  같은 레이어도 스케일에 따라 적절한 심벌이 부여되게 한다.  피처를 다듬어라!  피처를 정규화(Simplofiy)하여 불필요한 점을 없엔다.  각 스케일에 맞게 정규화된 어러 레이어를 사용하면 효과적이다.  지나치게 넓은 범위의 MBR을 가지는 피처는 적절히 분리한다.  느린 스타일의 사용을 최소화하라!  투명도(Transparecy)의 사용은 기본적으로 2배 이상의 랜더링 시간이 걸 린다.  라벨을 뿌리는 것은 비싼 비용을 각오해야 한다.  라벨에 테두리(Halo)를 주는 것은 더 비산 비용이 필요하다. 108
  • 109.
     Raster Data JPEG나 ArcGRID의 사용을 자제하라!  이런 포맷들은 디코딩에 많은 비용이 든다.  가능한 한 인코딩 되지 않은 GeoTiff를 사용하라.  ECW나 JPEG2000와 같은 진보된 웨이블릿 포맷도 바람직하다.  다단계 타일링 된 GeoTiff를 사용하라!  GDAL 툴인 gdaladdo 명령을 이용하면 다단계 타일링된 GeoTiff를 만들 수 있다.  Ex) gdaladdo -r average mytiff.tif 2 4 8 16  가능한 한, 영상을 합쳐라!  여러 장의 영상을 여러 레이어로 서비스 하는 것이 가장 느리다.  여러 장의 영상을 레이어 그룹으로 묶어 서비스 하면 조금(아주조금) 빨 라진다.  한 개의 영상으로 합처 서비스 하면 많이 빨라진다.  하지만 약 4GB 이상의 영상은 보통 GeoServer에 올릴 수 없기에 나눌 수 밖에 없다. 109
  • 110.
     Output FormatSelection  벡터 레이어  png로 요청하는 것이 일반적으로 좋다. 빠르며 크지않고 투명처리가 된다.  png8로 요청시 크기는 더 작아지지만 약간 느리고 색이 이상해질 수 있다.  Gif는 png8과 유사하지만, 브라우저에 따라 투명처리가 안되는 경우가 있다.  Jpeg는 느리고 투명처리 안되기에 비권장이다.  위성영상/항공사진  Jpeg가 용량이 작아 일반적으로 좋다.  Jpeg가 인코딩이 느린 것은 캐시로 해결 가능하다.  Null value 부분을 투명처리 하려면 PNG로 요청할 수 밖에 없다.  안티알리어싱 비활성화  빠른 속도를 원한다면 요청시 “format option”에서 안티알리어싱을 끌 수 있다.  &format_options=antialias:none  “Web safe” palette 이용  이 옵션은 png8과 gif 포멧 이용시만 유효하다.  &palette:safe 110
  • 111.
     GeoServer  http://geoserver.org GeoServer Documentation  http://docs.geoserver.org/latest/en/user/  GeoServer 한글 Documentation  GeoServer 2.0.0 설치 및 활용 가이드  GeoWebCache  http://geowebcache.org/  MakingMapsFast  http://download.osgeo.org/osgeo/foss4g/2009/SPREP /1Wed/Parkside%20GO3/1500/MakingMapsFast.pdf 111