Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Customizing Gis Programs

2,820 views

Published on

Published in: Technology
  • Be the first to comment

Customizing Gis Programs

  1. 1. 2013.03Minpa Lee(mapplus@gmail.com)
  2. 2. CustomizingGISPrograms2
  3. 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 Point3
  4. 4. ArcGIS for Desktop & Server VBA(Deprecated) Script ArcMap 또는 ArcCatalog 내에서 내장된 VBA 사용 ArcMap 문서(mxd 또는 mxt)에 저장되고 문서를 통해서 배포 VBA 를 이용해서 ArcObjects에 접근 10.1 버전부터 없어짐4http://map.sdsu.edu/geog104/images/unit-4/unit-4_image003_0000.png
  5. 5. ArcGIS for Desktop & Server .NET: Add-Ins Microsoft Visual Studio를 이용하여 개발 후 바이너리 배포 Template 형태로 비교적 커스터마이징이 쉬움 Desktop Add-In Manager를 이용하여 관리5
  6. 6. ArcGIS for Desktop & Server COM(VB, .NET, C++…) Microsoft Visual Studio를 이용하여 개발 후 바이너리 배포 독자적인 설치 프로그램으로 배포 가능 독립된 Application도 개발 가능하며 고급 개발 기존 KOPSS 개발 방식6
  7. 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. 8. ArcGIS for Desktop & Server ArcPy Scripts ArcPy 스크립트 작성 후 ArcToolbox에 import후 사용8
  9. 9. ArcGIS for Desktop & Server ModelBuilder ArcMap에 내장된 ModelBuilder를 이용한 GUI 기반의 툴박스 ArcToolbox 에 포함된 기능들을 사용9
  10. 10. ArcGIS for Desktop & Server ArcGIS Server REST API ArcGIS for Server 에서 제공하는 REST API OGC OWS(WMS, WFS, WCS, WPS…)처럼 Map Service, FeatureService, Geometry Service, Image Service, Network Service, GPService, GeoData Service 등으로 구성 ArcGIS Web Client(JavaScript, Flash, Silverlight…) 등에서 활용 -Mash up 분석 기능은 GP Service 서비스를 확장(ArcPy)하여 추가 http://servicesbeta2.esri.com/arcgis/sdk/rest/index.html10
  11. 11. ArcGIS for Desktop & Server ESRI Support: http://support.esri.com11
  12. 12. Quantum GIS Desktop Python Console PyQGIS 콘솔창을 통해 객체 사용 스크립트 작성 후 스크립트 파일을 공유12>>> from qgis.analysis import QgsGeometryAnalyzer>>> layer = qgis.utils.iface.activeLayer()>>> process = QgsGeometryAnalyzer()>>> process.buffer(layer, "C:/data/buffer_500.shp", 500, False, False, -1)>>> process.centroids(layer, "C:/data/centroids_500.shp“, False, -1)
  13. 13. Quantum GIS Desktop Python Plugins PyQGIS를 이용하여 플러그인 작성 및 배포 온라인 배포를 위해서 QGIS Plugin Repository에 등록 및 승인13
  14. 14. Quantum GIS Desktop Python Applications PyQGIS qgis_core, qgis_gui libraries를 QGIS 외부에서 사용14
  15. 15. Quantum GIS Desktop Quantum GIS Plugin Repository: http://plugins.qgis.org/15
  16. 16. uDig Desktop Eclipse RCP Plug-in 플러그인 작성 Plug-in Repository를 통해 자동 설치 및 업데이트16http://www.mangosystem.com:8080/gxt/docs/gxt_for_desktop/udig/index.html
  17. 17. uDig Desktop Scripting Plug-in GeoScript: Groovy17http://jgrasstechtips.blogspot.kr/2013/01/proposal-geoscript-console-in-udig.html
  18. 18. uDig Desktop Developing with uDig: http://udig.refractions.net/developers/18
  19. 19. GeoServer GeoTools Process GeoTools 및 Java를 이용하여 Process 생성 GeoServer의 WPS Process로 사용하며 고급 customization GeoTools의 모든 기능을 사용 및 확장 가능 GeoTools를 사용하는 Desktop 및 Server 모두 사용 http://docs.geotools.org/latest/userguide/unsupported/process/index.html19
  20. 20. GeoServer Python Extension app, datastore, filter, format, lib, process Jython script20
  21. 21. GeoServer Scripting(GeoScript) Extension Python, JavaScript, Groovy… 등 지원 Python extension과 유사21
  22. 22. GeoServer User & Developer Manual: http://docs.geoserver.org/22
  23. 23. R R Script R is a free software programming language and a softwareenvironment for statistical computing and graphics. R is an implementation of the S programming language combinedwith lexical scoping semantics inspired by Scheme The capabilities of R are extended through user-createdpackages, which allow specialized statistical techniques, graphicaldevices, import/export capabilities, reporting tools, etc. Thesepackages are developed primarily in R, and sometimes in Java, Cand Fortran. R-spatial : http://cran.r-project.org/web/views/Spatial.html23
  24. 24. R R Project: http://www.r-project.org24
  25. 25. Summary 공통 각 GIS 엔진에서 지원하는 커스터마이징 방법은 다름 최근 Python 중심으로 통합 추세지만 API는 Engine마다 다름 Desktop 사용자가 분석 스크립트(UI 포함) 생성 후 배포 로컬 데이터 사용 용이 Server 배포 방식은 스크립트 Extension, Plugin, Customizing 등 엔진에 따라 지원 방식이 다양함 관리자가 분석 스크립트 생성 후 서버에 배포 추가된 기능은 클라이언트(Web)에서 Mashup 하여 활용 로컬 데이터 사용 어려움 지원 포맷: GML, GeoJSON, TopoJSON… 인코딩 된 포맷의 크기 제약25

×