3. Customizing GIS Programs
ArcGIS Desktop & Server
VBA(Deprecated) Script
.NET: Add-Ins & COM
Python: ArcToolbox & ArcPy & REST API
QGIS Desktop
C++ & PyQT
PyQGIS: console, Plug-in, stand-alone
GeoServer
Java: WPS, Filter Plug-in
Python : app, datastore, filter, format, lib, process
Scripting(GeoScript): Python, JavaScript, Groovy…
uDig Desktop
Java: Plug-in
Scripting: Groovy Plug-in
R
R Script
Extension Point
3
4. ArcGIS for Desktop & Server
VBA(Deprecated) Script
ArcMap 또는 ArcCatalog 내에서 내장된 VBA 사용
ArcMap 문서(mxd 또는 mxt)에 저장되고 문서를 통해서 배포
VBA 를 이용해서 ArcObjects에 접근
10.1 버전부터 없어짐
4
http://map.sdsu.edu/geog104/images/unit-4/unit-4_image003_0000.png
5. ArcGIS for Desktop & Server
.NET: Add-Ins
Microsoft Visual Studio를 이용하여 개발 후 바이너리 배포
Template 형태로 비교적 커스터마이징이 쉬움
Desktop Add-In Manager를 이용하여 관리
5
6. ArcGIS for Desktop & Server
COM(VB, .NET, C++…)
Microsoft Visual Studio를 이용하여 개발 후 바이너리 배포
독자적인 설치 프로그램으로 배포 가능
독립된 Application도 개발 가능하며 고급 개발
기존 KOPSS 개발 방식
6
7. ArcGIS for Desktop & Server
ArcPy : Python Window
콘솔창을 통해 객체 사용
스크립트 작성 후 스크립트 파일을 공유
7
>>> import arcpy
>>> arcpy.AddField_management("c:/data/Portland.gdb/streets", "LENGTH_MILES", "TEXT")
>>> arcpy.CalculateField_management("c:/data/Portland.gdb/streets",
"LENGTH_MILES", "!shape.length@miles!", "PYTHON_9.3")
8. ArcGIS for Desktop & Server
ArcPy Scripts
ArcPy 스크립트 작성 후 ArcToolbox에 import후 사용
8
9. ArcGIS for Desktop & Server
ModelBuilder
ArcMap에 내장된 ModelBuilder를 이용한 GUI 기반의 툴박스
ArcToolbox 에 포함된 기능들을 사용
9
10. ArcGIS for Desktop & Server
ArcGIS Server REST API
ArcGIS for Server 에서 제공하는 REST API
OGC OWS(WMS, WFS, WCS, WPS…)처럼 Map Service, Feature
Service, Geometry Service, Image Service, Network Service, GP
Service, GeoData Service 등으로 구성
ArcGIS Web Client(JavaScript, Flash, Silverlight…) 등에서 활용 -
Mash up
분석 기능은 GP Service 서비스를 확장(ArcPy)하여 추가
http://servicesbeta2.esri.com/arcgis/sdk/rest/index.html
10
16. uDig Desktop
Eclipse RCP Plug-in
플러그인 작성 Plug-in Repository를 통해 자동 설치 및 업데이트
16
http://www.mangosystem.com:8080/gxt/docs/gxt_for_desktop/udig/index.html
19. GeoServer
GeoTools Process
GeoTools 및 Java를 이용하여 Process 생성
GeoServer의 WPS Process로 사용하며 고급 customization
GeoTools의 모든 기능을 사용 및 확장 가능
GeoTools를 사용하는 Desktop 및 Server 모두 사용
http://docs.geotools.org/latest/userguide/unsupported/process/
index.html
19
23. R
R Script
R is a free software programming language and a software
environment for statistical computing and graphics.
R is an implementation of the S programming language combined
with lexical scoping semantics inspired by Scheme
The capabilities of R are extended through user-created
packages, which allow specialized statistical techniques, graphical
devices, import/export capabilities, reporting tools, etc. These
packages are developed primarily in R, and sometimes in Java, C
and Fortran.
R-spatial : http://cran.r-project.org/web/views/Spatial.html
23
25. Summary
공통
각 GIS 엔진에서 지원하는 커스터마이징 방법은 다름
최근 Python 중심으로 통합 추세지만 API는 Engine마다 다름
Desktop
사용자가 분석 스크립트(UI 포함) 생성 후 배포
로컬 데이터 사용 용이
Server
배포 방식은 스크립트 Extension, Plugin, Customizing 등 엔진에 따라 지
원 방식이 다양함
관리자가 분석 스크립트 생성 후 서버에 배포
추가된 기능은 클라이언트(Web)에서 Mashup 하여 활용
로컬 데이터 사용 어려움
지원 포맷: GML, GeoJSON, TopoJSON…
인코딩 된 포맷의 크기 제약
25