Customizing Gis Programs

2,189 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,189
On SlideShare
0
From Embeds
0
Number of Embeds
924
Actions
Shares
0
Downloads
20
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×