2013년 12월 19일 목요일

NIPA 공개 SW 개발지원사업 최종보고회 자료

2013년 정보통신산업진흥원(NIPA) 공개 SW 개발지원사업에서 망고시스템이 수행한 [Java 기반의 오픈 소스 GIS를 지원하는 국내 공간 DBMS 드라이버 개발] 과제의 완료보고회 자료 첨부합니다

많은 분들이 도와주셔서 과제를 완료했습니다. 감사합니다.

프로그램 원본 및 소스코드 다운로드는 다음을 통해서 가능합니다.

SourceForge : http://sourceforge.net/projects/gt-jdbc-korean/


2013년 12월 7일 토요일

우리 동네 OpenStreetMap 편집하기

OpenStreetMap(OSM) 웹 페이지의 iD 편집기 활용법도 배우고 내가 살고 있는 지역들에 대한 지도 개선을 위해 주요 랜드마크들을 추가해 봤습니다.

현재까지 우리나라의 고속도로, 간선도로, 주요도로, 보조도로는 거의 완성된 듯 합니다.
OSM Korea Community 분들께 진심으로 감사드립니다.

주요 편집 대상은 주거지역(아파트 단지 및 아파트건물), 공원(공원 내 시설물 및 보도), 학교(지역 및 건물), 주요 상업건물 등입니다.

▣ 1차 목표
 - 주거지역 내 OpenStreetMap 편집에 대한 가이드 작성 - 추후 포스팅 계획
 - 내가 살고 있는 서울시 구로구 전역에 대한 편집!
 - FOSS4G 2015 개최를 위한 후보지인 제주특별자치도 서귀포시 중문관광단지 일대!

▣ 편집 지역 예
 - 서울시 구로구 일대:  http://www.openstreetmap.org/#map=16/37.5051/126.8527
 - 제주도 서귀포시 중문 일대:  http://www.openstreetmap.org/#map=16/33.2456/126.4156

▣ 주요 지도 범례

▣ OpenStreetMap 페이지 미리보기
 - 2013년 11월 말

 - 2013년 12월 7일 현재

▣ iD 편집기
 - 사용하기 쉬운 브라우저용 지도 편집기
 - 지도 편집 및 저장 후 5분 이내에 지도에 반영됨 

▣ MapBox 지도의 갱신
 - OSM에서 지도 편집이 완료된 후 약 20분 이내에 MapBox Streets 등에 반영됨

▣ uDig에서 OpenStreetMap 활용
 - [Layer] -> [Add...] -> Web Map Tiles (OpenStreetMap, MapQuest Maps, ..) 데이터소스 클릭
 - 다음 그림과 같이 OpenStreetMap -> Mapnik 선택 후 [Finish] 버튼 클릭
  - 더 자세한 내용은 다음 포스팅을 참조
  - uDig에서 Web Map Tiles Services 레이어를 Zoom Level에 맞게 보기

 - uDig의 Web Map Tiles 소스를 이용하여 데스크톱 내에서 OSM 활용 예

2013년 11월 19일 화요일

FOSS4G Korea 2013 망고시스템 발표자료

FOSS4G Korea 2013 망고시스템(김기웅, 임영현) 발표자료!

Java기반의 오픈소스 GIS(GeoServer, uDig)를 지원하는 국내 공간DBMS 드라이버 개발

정보통신산업진흥원(NIPA)의 2013년 공개SW 개발지원 사업의 일환으로 개발된 국내 공간 DBMS를 지원하는 오픈소스 GIS(GeoServer, uDig)드라이버 개발 

GeoTools, GeoServer에서 Altibase, Tibero, Kairos 공간 DBMS를 지원하고 NGI 파일을 다양한 포맷으로 변환도 가능하게 되었죠!

2013년 10월 28일 월요일

FOSS4G Korea 2013

FOSS4G Korea 2013 행사 프로그램을 안내해 드립니다. FOSS4G Korea는 OSGeo 한국어 지부가 주최하고 한국오픈소스GIS포럼이 주관하는 오픈 소스 GIS 분야의 최대 축제입니다.

오픈 소스 GIS에 관심 있는 많은 분들이 본 행사를 통해 다양한 기술적, 인적 교류를 하시기를 바랍니다.

특히 올해는 행사 기간이 이틀로 늘어났을 뿐만 아니라 예년에 비해 많은 발표들이 예정되어 있습니다. 꼭 행사에 참석하시어 자리를 빛내 주시기 바랍니다.

자세한 내용은 다음을 참고해 주세요
 - http://www.osgeo.kr/135
 - http://www.osgeo.kr/136


2013년 10월 13일 일요일

QGIS에서 대용량 Raster 및 Shapefile 그리기

QGIS에서 대용량의 래스터(GeoTiff 등) 및 Shape 파일을 사용할 때 그리기 성능이 안나는 경우 해결할 수 있는 옵션입니다.

일반적으로 래스터에 대해서는 피라미드(Pyramid)를 생성하며 단일 파일로 저장(원본 파일에 피라미드 정보 포함)하거나 외부 피라미드파일(.ovr, .aux. .rrd 등)을 활용할 수 있습니다. QGIS에서는 GDAL라이브러리를 활용하며, QGIS가 아니더라도 GDAL 명령어를 통해 피라미드를 생성할 수 있습니다.

Shapefile의 경우에는 공간 인덱싱을 생성하며, 인덱스 파일(qix, idx, sbx 등 GIS 프로그램마다 자체 포맷을 가진 경우가 많음)을 생성하여 그리기 및 검색 성능을 향상할 수 있습니다.

래스터 피라미드(Pyramid)에 대한 조금 더 자세한 정보는 이 블로그의 다음 포스팅을 확인하십시오
 - Raster Pyramids에 대해서... 

▣ GeoTiff Raster 피라미드 생성하기
 ⊙ Layer Properties(레이어 정보) --> Pyramids 탭 활용
- 레이어 창에서 생성할 레이어를 더블클릭 하거나 오른쪽 마우스 눌러 등록정보(Properties) 메뉴를 실행합니다.
- Pyramids 탭의 오른쪽에서 생성할 레벨을 선택하면 [Build Pyramids] 버튼이 활성화됩니다.
- Overview format은 외부 또는 내부 저장을 선택할 수 있습니다. 내부 저장을 선택하는 경우 원본 파일에 변경을 가하므로 반드시 백업을 해 두라는 메세지가 설명에 나와 있습니다.
- 리샘플링 방법은 위 포스팅을 보고 래스터의 특성에 따라 선택하면 됩니다.


 ⊙ Raster 메뉴 기능 활용
 - [Raster] > [Miscellaneous] > [Build Overviews] 메뉴를 실행합니다.
 - 옵션은 위 레이어 등록정보와 동일합니다.

 ⊙ Save As... 메뉴 활용
 - 피라미드를 생성할 레이어를 선택하고 오른쪽 마우스를 눌러 [Save as...] 메뉴를 실행합니다.
 - 저장할 이름(GeoTiff)을 선택합니다.
 - Raster 를 내보내기 할 때는 다양한 옵션을 사용할 수 있습니다.
 - 사용 가능한 옵션은 Extent(일정 범위로 잘라내기), Resolution(래스터 해상도<셀크기> 변경), Create Options(압축 여부 및 압축 방법 등), No data values(NoData 처리) 및 우리가 여기에서 하고자 하는 Pyramids가 있습니다.
 - 피라미드 옵션을 체크하고 위에서 했던 것과 같이 적절한 레벨을 선택합니다.
 - OK 버튼을 누르면 내보내기 과정에서 피라미드를 함께 생성하며 저장합니다.
 

▣ Shapefiles 공간 인덱싱 생성하기
 ⊙ Layer Properties(레이어 정보) --> General 탭 활용
- 레이어 창에서 생성할 레이어를 더블클릭 하거나 오른쪽 마우스 눌러 등록정보(Properties) 메뉴를 실행합니다.
- General 탭의 Coordiante reference system 그룹박스의 버튼 중 [Update extent], [Create spatial index] 버튼을 차례로 누릅니다.
- Shapefile의 크기에 따라 약간의 시간이 걸릴 수 있으니 기다리면 됩니다.


▣ 참고
 - http://qgis.spatialthoughts.com/2012/02/tutorial-working-with-rasters-in-qgis.html
 - http://gis.stackexchange.com/questions/52367/best-way-to-handle-many-raster-files-in-qgis

2013년 10월 11일 금요일

uDig GeoScript 소개

uDig도 QGIS의 PyQGIS 처럼 일반적인 작업을 자동화할 수 있는 강력한 스크립팅 기능이 있습니다. HydroGISAndrea Antonello 님께 감사드립니다.

PyQGIS가 Python을 사용한다면 uDig의 GeoScript는 Groovy(그루비는 자바파이썬, 루비, 스몰토크등의 특징을 더한 동적 객체 지향 프로그래밍 언어, 출처: 위키백과)를 활용하며, GeoTools가 가진 거의 모든 기능을 사용할 수 있습니다.

uDig에서 GeoScript 편집 환경
 ⊙ 편집기에 자동완성 및 구문강조 기능 포함

▣ Geometry Plot
 - Geometry를 생성하고 연산 수행 후 보기

▣ MapWindow
 - 레이어(Shapefile 등)를 불러와서 스타일 적용 후 지도 보기 및 이미지 저장 등

▣ 기타
  - 스타일, 렌더링, Geometry, 분석, 변환 등 GeoTools가 수행하는 거의 모든 기능 사용
  - GeoTools 프로세스 및 JGrass 분석 기능 사용

▣ 참고
 ⊙ Geographic scripting in uDig, FOSS4G Nottingham 2013


 ⊙ uDig User Guide
- uDig User Guide : GeoScript Introduction

 ⊙ GeoScript
  - http://geoscript.org/
  - 더 많은 예는 https://github.com/jericks/geoscript-groovy 에서 확인

▣ Example
 - Point Shapefile을 열고 NAM 이라는 필드가 NULL이 아닌 모든 피처를 1,500 지도 단위로 버퍼링한 Shapefile 생성하고 원본과 함께 지도에 표출

import geoscript.workspace.*
import geoscript.layer.*
import geoscript.feature.*
import geoscript.filter.*
import geoscript.geom.*
import geoscript.proj.*
import geoscript.render.*
import geoscript.style.*
import geoscript.style.io.*
import geoscript.viewer.*

//==========================================================
// Simple Buffer Process
//==========================================================
// Open Shapefile workspace
path = "C:/data/seoul/"
URL url = new File(path).toURL()
Workspace workspace = new Workspace("url='${url}' 'charset'='x-windows-949'")

// Open Shapefile layer we want to process
input_layer = workspace["wardoffice"]  // or workspace.get("wardoffice")
println "input feature count = " + input_layer.count()

// Create a new Schema (based on the Shapefile) but with Polygon Geometry
Schema schema = input_layer.schema.changeGeometryType('Polygon','wardoffice_buffer_1500')
println schema

// Create a new Layer
Layer output_layer = workspace.create(schema)

// Use the Cursor to loop through each Feature in the Shapefile
def filter = new Filter("NAM IS NOT NULL")
Cursor cursor = input_layer.getCursor(filter)   // or cursor
while(cursor.hasNext()) {
    // Get the next Feature
    Feature feature = cursor.next()

    // Create a Map for the new attributes
    attributes = [:]

    // For each attribute in the shapefile
    feature.attributes.each{k,v ->
        // If it's Geometry, process geometry
        if (v instanceof Geometry) {
            attributes[k] = v.buffer(1500)
            // v.bounds.geometry
        } else {
            attributes[k] = v
        }
    }

    // Create a new Feature with the new attributes
    Feature new_feature = schema.feature(attributes, feature.id)

    // Add it to the layer
    output_layer.add(new_feature)
}

// Always remember to close the cursor
cursor.close()

println "output feature count = " + output_layer.count()

// Apply layer's styles
output_layer.style = new Fill("#00ffff", 0.5) + new Stroke("silver", 0.1)

input_layer.style = new Shape("red", 4, "circle")
input_layer.style += new Label("NAM").font(family: "나눔고딕", size:12).point(anchor:[-0.25,0.5])
input_layer.style += new Halo(new Fill("white"), 1.0)

// Show map window
def map = new Map(width:900, height:600)
map.bounds = output_layer.bounds
map.addLayer(output_layer)
map.addLayer(input_layer)

new MapWindow(map)

2013년 10월 9일 수요일

Tips for the PostGIS

▣ PostGIS Version: SELECT PostGIS_Full_Version();
 - "POSTGIS="2.0.1 r9979" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.7.1, 23 September 2009" LIBXML="2.7.8""

▣ View 레이어 생성하기
⊙ PostGIS 2.0에서 기존 레이어로 뷰를 생성했을 때, geometry_columns에 srid 및 type이 제대로 표시되지 않을 경우에 해결책입니다.

⊙ 우선 View가 이미 있는 경우 뷰를 삭제합니다.
DROP VIEW view_name;

⊙ 기존 building 레이어에서 도형의 면적이 300을 넘는 building을  building_view 뷰로 생성하는 예입니다.
 - 다음과 같이 geometry 컬럼에 정확한 Geometry 타입 및 SRID를 정의해 주면 됩니다.
CREATE VIEW building_view AS
 SELECT gid AS gid, the_geom::geometry(MultiPolygon, 5174) AS the_geom
 FROM building 
 WHERE ST_Area(the_geom) > 300;

⊙ 기존 building 레이어를 WGS84 경위도 좌표계로 변환한 포인트 building_point_4326 뷰로 생성
 - 다음은 building 폴리곤의 중심점을 추출하고 좌표계를 변환하는 예를 포함합니다.
CREATE VIEW building_point_4326 AS
 SELECT building.gid AS gid, ST_Transform(ST_Centroid(building.the_geom), 4326)::geometry(Point, 4326) AS the_geom
 FROM building;

▣ 기존 레이어의 SRID 정의
PostGIS 공간테이블(레이어)의 좌표체계를 정의하는 방법은 UpdateGeometrySRID 함수를 이용하면 됩니다. 2.0 버전부터는 DDL을 이용하여 기존 레이어의 좌표체계 정의 및 변환까지 가능하게 되었습니다.

⊙ UpdateGeometrySRID 함수를 이용하는 방법
 - 기존 Unknown 좌표계를 WGS84 경위도 좌표계로 정의
SELECT UpdateGeometrySRID('roads', 'geom', 4326);

⊙ DDL을 이용하는 방법 - 2.0 버전부터 적용
 - 기존 Unknown 좌표계를 WGS84 경위도 좌표계로 정의
ALTER TABLE roads
  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326)
    USING ST_SetSRID(geom,4326);

▣ 테이블 생성 없이 기존 레이어의 Geometry 좌표 변환후 업데이트
⊙ DDL을 이용하는 방법 - 2.0 버전부터 적용
 - 기존 WGS84 경위도 좌표계의 레이어를 구글 좌표계(일반적으로 900913을 많이 사용하지만 EPSG 공식 코드는 3857임)로 변환
ALTER TABLE roads
 ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 3857)
    USING ST_Transform(ST_SetSRID(geom, 4326), 3857) ;

▣  참고
 - http://postgis.net/docs/using_postgis_dbmanagement.html
 - http://postgis.org/docs/UpdateGeometrySRID.html

uDig에서 Web Map Tiles Services 레이어를 Zoom Level에 맞게 보기

uDig에서 Web Map Tiles Service(WMTS) 레이어를 uDig에 추가하고 줌 레벨로 보는 방법입니다.
uDig은 이를 위해 Zoom Level Switcher 뷰를 제공합니다.

▣ 우선 WMTS 레이어를 추가합니다.
 - uDig은 [Layer] --> [Add...] --> [Web Map Tiles (OpenStreetMap, MapQuest Maps ...] 기능을 통해 다양한 타일맵 지도를 배경 지도로 활용할 수 있습니다.
 - 이 블로그의 다음 포스팅을 참고하세요: MapBox Maps in uDig GIS

 - uDig은 사용자가 임의로 자유롭게 축척을 설정할 수 있으므로 이미 만들어진 타일 지도의 축척과 정확하게 일치하지 않으면 다음과 같이 이미지가 왜곡되어 표시됩니다.

▣  Zoom Level Switcher 뷰 활성화
 - 아래 그림과 같이 [Window] --> [Show View] --> [Other...] 메뉴를 실행합니다.
 - Show View 다이얼로그에서 마지막의 [Zoom Level Switcher] 뷰를 선택하고 [OK] 버튼을 누릅니다.

▣  MapBox 지도를 줌 레벨 11로 선택한 모습
 - 이제 아래 그림과 같이  [Zoom Level Switcher] 뷰가 표시됩니다.
 - 여기에서는 MapBox Streets 레이어를 WMTS 레이어로 사용하고 있으므로 MapBox Streets 레이어를 선택하고 + 또는 - 버튼을 눌러 지도를 확대 또는 축소해 봅니다.
 - 그러면 앞의 지도에 비해 텍스트가 깔끔하게 표시된다는 것을 확인할 수 있다. 즉 타일 크기와 일치하는 지도 축척이 설정된 것입니다.


▣  기타 WMTS 레이어 확인
 - 공간정보 오픈 플랫폼의 VWorld 배경지도를 WMTS 레이어로 추가하고 [Zoom Level Switcher]를 이용하여 줌 레벨을 적용해 본 화면입니다.

2013년 10월 6일 일요일

[GeoServer] GeoServer에서 국내 공간 DBMS 드라이버 사용하기

GeoServer에서 국내 공간 DBMS 드라이버를 사용하여 서비스하는 방법을소개합니다.

지원하는 공간 DBMS는 다음과 같습니다.
 - Altibase Spatial: http://support.altibase.com/kr
 - Tibero Spatial: http://technet.tmax.co.kr
 - Kairos Spatial: http://www.realtimetech.co.kr

▣ 국내 공간 DBMS 지원 프로젝트 소개
 - [GeoTools Data Store] 국내 공간 DBMS 및 파일 포맷 지원 

▣ GeoServer 다운로드
 - SourceForge: http://sourceforge.net/projects/geoserver/
 - 2013년 10월 6일 현재 2.4.0 버전이 릴리스되었습니다.

▣ 국내 공간 DBMS 드라이버 다운로드
 - SourceForge: http://sourceforge.net/projects/gt-jdbc-korean/
 - GeoServer 버전에 따라 드라이버 버전을 모두 지원하므로 GeoServer 버전에 맞게 다운로드 합니다(예, GeoServer 2.4.0의 경우 GeoServer 설치 폴더의 WEB-INF\lib 폴더에 보면 GeoTools 10.0을 사용)

▣ 설치 방법 (GeoServer 2.4.0 + GeoTools 10.0 기준)
 ① Altibase
  - GeoServer 설치 폴더의 WEB-INF\lib 폴더에 다운로드한 gt-jdbc-altibase-10.0.jar 및 Altibase가 제공하는 Altibase5.1.4.jar JDBC 드라이버를 복사

 ② Tibero
  - GeoServer 설치 폴더의 WEB-INF\lib 폴더에 다운로드한 gt-jdbc-tibero-10.0.jar 및 Tibero가 제공하는 tibero5-jdbc.jar JDBC 드라이버를 복사

 ③ Kairos
 - GeoServer 설치 폴더의 WEB-INF\lib 폴더에 다운로드한 gt-jdbc-kairos-10.0.jar 및 Kairos가 제공하는 kairosjdbc.jar JDBC 드라이버를 복사

▣ 저장소 등록 확인
이제 GeoServer 서비스를 다시 시작합니다.
GeoServer의 [데이터] -> [저장소] -> [새로운 저장소 생성하기] 메뉴를 실행하면 다음과 같습니다.

 ▣ 레이어 등록 및 발행
이후 과정은 PostGIS에서 레이어를 등록하고 활용하는 과정과 동일합니다.
단, Altibase, Tibero, Kairos에서 WKT 크기 제한이 있으므로 반드시 preparedStatements 사용에 체크하시기 바랍니다.

 ▣ 참고 사항
위에서 제공하는 Altibase, Tibero, Kairos 드라이버는 레이어 읽기 및 쓰기 모두 지원합니다. 따라서 GeoTools를 사용하는 개발자라면 간단한 프로그램을 이용하여 DBMS에 레이어를 추가하는 작업도 가능합니다.

다음은 망고시스템에서 uDig GIS 및 위 드라이버를 활용하여 데이터 변환 도구를 작성한 예입니다.

2013년 10월 1일 화요일

[Ubuntu] uDig에서 GXT Toolbox가 실행되지 않을 경우

OS : Ubuntu 12.04.2
uDig : 1.4.0b

▣ 증상
 uDig에서 추가/설치를 통해 [GXT Toolbox]를 성공적으로 설치하여, Toolbox의 트리목록은 생성되나 개별 기능을 더블클릭했을 경우 아무런 반응이 없을 경우.

▣ 원인
> 참조 URL
http://udig.refractions.net/files/docs/latest/user/Running%20uDig.html#info-and-help-require-a-pure-mozilla-browser-udig-698-linux-mozilla-five-home-required-for-information-tool

> Internal or Embedded Browser
uDig 에서는 Info View, Web Catalog, 도구상자의 help와 같은 페이지를 팝업창에 보여줄때 "Web Browser"를 사용하여 보여줍니다. Window 에서는 해당 페이지를 Explorer를 통해 보여주는 것과 같이 Linux 에서는 기본적으로 Mozilla Browser를 사용하게 되어 있습니다.

> Linux 플랫폼의 Eclipse는 기본적으로 Mozilla 브라우저를 사용하게끔 되어 있지만 최근 Linux 배포판(Ubuntu 12.04 포함)에서는 Firefox 처럼 Custom된 브라우저를 탑재하여 배포되기 때문에 uDig 에서는 이러한 Browser를 인식하지 못합니다.

> 결론적으로.. uDig이 Linux의 Internal or Embedded Browser를 인식하지 못해서 정보 페이지를 보여줄수 있는 Browser를 찾지 못해 Java의 SWT에서 오류가 발생하여 툴박스의 창이 열리지 않는 것입니다.

▣ 해결방법
> 1. http://udig.refractions.net 에서는 "Mozilla"를 설치.

> 2. 다음과 같이 "libwebkitgtk-1.0-0"을 설치합니다.
   sudo apt-get install libwebkitgtk-1.0-0

> 3. "xulrunner"를 설치하고, uDig 폴더의 스트립트파일(udig.sh)에 다음내용을 추가합니다.
   [xulrunner] 설치 : sudo apt-get install xulrunner
   [udig.sh] 스크립트에 추가 : export MOZILLA_FIVE_HOME="/usr/lib/xulrunner/"

위 세가지 방법중 한가지로 문제를 해결할 수 있습니다.
참고로 저는 두번째 방법을 통해 문제를 해결했습니다.

2013년 9월 26일 목요일

MapBox Maps in uDig GIS

uDig의 Web Map Tiles 데이터 소스는 미리 정의된 OpenStreetMap, NASA World 타일 지도 외에 사용자 정의 서버를 설정할 수 있습니다. 다음 예는 uDig에서 MapBox 지도를 추가하는 과정입니다.

▣ uDig Version
 - http://udig.refractions.net/
 - 테스트 버전: 1.4.0

▣ MapBox
 - http://www.mapbox.com/

▣ uDig에서 MapBox 지도 보기
 - [Layer] --> [Add...] 메뉴 실행
 - [Add Data] 창의 Data Sources 에서 Web Map Tiles(OpenStreetMap, MapQuest Maps, ...) 선택 후 [Next] 버튼 클릭

 - OpenStreetMap 트리에서 Custom Server 선택
 - 오른쪽 URL에 다음을 입력
  1. Streets   Map : http://a.tiles.mapbox.com/v3/tmcw.map-7s15q36b/{z}/{x}/{y}.png
  2. Satellite Map : http://a.tiles.mapbox.com/v3/tmcw.map-j5fsp01s/{z}/{x}/{y}.png
 - 위에서 a는 b, c, d 로 대체 가능,  v3/tmcw.map-7s15q36b 항목은 지도 버전


 - [Next] 버튼 눌러 지도에 레이어를 추가

▣ MapBox Streets Map 예

▣ MapBox Satellite Map 예

2013년 9월 15일 일요일

FOSS4G Korea 2013 Call For Presentations

안녕하세요?

FOSS4G Korea 2013 행사가 11월 14일(목) ~ 11월 15일(금) 2일동안 개최됩니다.
이에 11월 15일(안) 본 행사(COEX 318호) 구두 발표 세션에서 발표를 하실 분들을 모집합니다.

FOSS4G Korea는 OSGeo 한국어 지부가 매년 개최하는 Open Source GIS 관련 최대 행사이자 축제입니다.
참가자들은 FOSS4G Korea 행사를 통해 Open Source GIS와 관련된 지식, 경험, 노하우 등을 공유할 수 있으며,
개인이나 회사의 역량을 대중적으로 뽐낼 수 있는 기회로 삼으실 수도 있습니다.
작년 FOSS4G Korea 2012 행사가 어떻게 진행되었는지는 http://www.osgeo.kr/84 에서 살펴 보실 수 있습니다.

○ 발표 주제 제출 마감일 : 10월 24일(목)
○ 주제 : Open Source GIS와 관련된 모든 것(기술, 비즈니스 모델, 아이디어, 프로젝트 등등)
○ 제출 방식 : 제목, 저자, 그리고 발표 내용 요약(100 단어 정도)을 OSGeo 메일링 리스트나 mapplus @ gmail.com 으로 보내 주시기 바랍니다.
○ 발표자 선정 : 지원한 발표 개수가 10개를 초과할 경우 본 메일링 리스트의 투표를 통해 선정하도록 하겠습니다.


많은 기업, 개인들이 오픈 소스 GIS와 관련된 자신들의 역량과 실력을 자랑하는 자리가 되었으면 합니다.
학술적인 내용들은 사실 학회를 통해 많이 발표되는 관계로 우리 회원들에게 실질적으로 도움이 되는 것들을 공유하는 자리가 되었으면 합니다.

그리고 현재 계획하고 있는 FOSS4G Korea 2013의 행사 프로그램은 다음과 같습니다.

○ 행사명: FOSS4G(Free & Open Source SW for GeoSpatial) Korea 2013
○ 주최: OSGeo 한국어 지부(OSGeo Korean Chapter), 한국오픈소스 GIS포럼
○ 개최 일자 및 시간: 2013년 11월 14일(목) ~ 15일(금), 이틀 간 매일 10:30 ~ 17:30
○ 주요 참가자 및 인원: OSGeo 의장단을 포함해 약 100여명 가량 참가 예산
○ 프로그램
 ※ 2013년 11월 14일(안) Workshop 행사 - 강남역 토즈
   1. 강연 세션
    - 주제: 오픈 소스 라이선스 관련 특강
    - 강사: 섭외중
    - 시간: 10:30 ~ 12:00
   2. 기술 워크숍 세션
    - 주제: Advanced MapServer
    - 강사: Jeff McKenna, OSGeo 의장
    - 시간: 13:30 ~ 17:30

 ※ 2013년 11월 15일(안) 본 행사 - COEX 318호
   1. 특강 세션
    - 강사: 1. Jeff McKenna, 2. Raghaven Venkatesh, 3. OpenStreetMap Community
    - 시간: 10:30 ~ 12:00
   2. 구두 발표 세션
    - 주제: Open Source GIS를 이용한 시스템 구축 사례 및 학술 발표 등
    - 시간: 13:30 ~ 17:30
   3. Soju Party(OSGeo 한국어 지부 뒷풀이)
    - 시간 : 19:00 ~
    - 장소 : COEX 인근

많은 분들 자신감을 가지고 자랑들 많이 해 주세요!!!!

이민파, mapplus @ gmail.com

2013년 9월 2일 월요일

[Geoserver] Shadow & Extrusion Effect

GeoServer에서 레이어의 스타일(SLD) 작성시 Filter function 중 Geometric function을 사용하면 다양한 효과를 낼 수 있다.

Geometric function을 사용하면 원본 레이어의 geometry 타입을 변경하지 않고 렌더링 타임에 폴리곤의 중심점(centroid), 버퍼(buffer), 시작점(startPoint), 끝점(endPoint), 정점(vertices) 등을 적용할 수 있으며, 이를 "SLD geometry transformations"이라 부른다.

SLD에 Geometric function을 사용하는 경우 성능 문제를 야기할 수 있으므로, 사용 목적에 따라 사용 여부를 신중히 결정해야 한다.

다음은 건물 등의 폴리곤에 Shadow(그림자) 및 Extrusion(2.5D) 효과를 줄 수 있는 방법을 알아본다.

▣ Default
 - GeoServer 기본 폴리곤 스타일 사용
<PolygonSymbolizer>
  <Fill>
    <CssParameter name="fill">#AAAAAA</CssParameter>
  </Fill>
  <Stroke>
    <CssParameter name="stroke">#000000</CssParameter>
    <CssParameter name="stroke-width">0.5</CssParameter>
  </Stroke>
</PolygonSymbolizer>


▣ Shadow
 - offset function 사용

<PolygonSymbolizer>
  <Geometry>
    <ogc:Function name="offset">
      <ogc:PropertyName>the_geom</ogc:PropertyName>
      <ogc:Literal>0</ogc:Literal>
      <ogc:Literal>-2</ogc:Literal>
    </ogc:Function>
  </Geometry>
  <Fill>
    <CssParameter name="fill">#555555</CssParameter>
  </Fill>
</PolygonSymbolizer>


▣ Extrusion
 - isometric & offset function을 조합하여 사용
 - isometric 함수 인자로 숫자(<ogc:Literal>3</ogc:Literal> ,3) 외에 필드값(필드명 입력) 또는 필드값의 연산 사용 가능

<PolygonSymbolizer>
  <Geometry>
    <ogc:Function name="isometric">
      <ogc:PropertyName>the_geom</ogc:PropertyName>
      <ogc:Literal>3</ogc:Literal>
    </ogc:Function>
  </Geometry>
  <Fill>
    <CssParameter name="fill">#dddddd</CssParameter>
  </Fill>
  <Stroke>
    <CssParameter name="stroke">#999999</CssParameter>
    <CssParameter name="stroke-width">0.1</CssParameter>
  </Stroke>
</PolygonSymbolizer>
<PolygonSymbolizer>
  <Geometry>
    <ogc:Function name="offset">
      <ogc:PropertyName>the_geom</ogc:PropertyName>
      <ogc:Literal>0</ogc:Literal>
      <ogc:Literal>3</ogc:Literal>
    </ogc:Function>
  </Geometry>
  <Fill>
    <CssParameter name="fill">#FFDCC7</CssParameter>
  </Fill>
  <Stroke>
    <CssParameter name="stroke">#999999</CssParameter>
    <CssParameter name="stroke-width">0.3</CssParameter>
  </Stroke>
</PolygonSymbolizer>


▣ 스타일 다운로드
 - building_shadow.sld
 - building_extrusion.sld

▣ 참고
 - http://docs.geoserver.org/stable/en/user/styling/sld-extensions/geometry-transformations.html
 - http://docs.geoserver.org/stable/en/user/filter/function_reference.html

2013년 9월 1일 일요일

QGIS에서 한글이 포함된 DXF 파일 불러오기

QGIS에서 DXF 파일을 불러올 때 한글이 포함된 텍스트(TEXT) 또는 레이어(LAYER)를 변환하면서 한글 속성이 깨지는 경우 해결하는 방법이며, 한글 윈도우를 기준으로 함



ESRI Shapefile의 경우 [Layer] --> [Add Vector Layer...] 메뉴 실행 후 다음 그림과 같이 EUC-KR을 선택하면 정상적으로 한글이 처리되지만, DXF 파일의 경우 현재 버전에서는 이 설정이 적용되지 않는다.
QGIS에서 DXF를 불러올 때 GDAL/OGR 라이브러리를 사용하므로 QGIS 시작할 때 환경설정을 추가하면 오류를 해결할 수 있다.

1. DXF 파일의 인코딩 확인
일반적으로 DXF 파일은 한글윈도우를 사용하여 CAD에서 저장하는 경우 파일의 헤더에 아래와 같이 $DWGCODEPAGE 속성이 ANSI_949로 저장되는 듯 하다(확인 필요)

$DWGCODEPAGE
  3
ANSI_949
  9

GDAL/OGR 드라이버에서 DXF 파일은 ANSI_1252 / Win1252 인코딩을 기본값으로 사용하며 ,파일 헤더의 $DWGCODEPAGE 속성 또는 GDAL/OGR 드라이버의 DXF_ENCODING 환경설정을 이용하여 인코딩을 설정할 수 있다.

현재 버전의 QGIS에서는DXF 파일의 $DWGCODEPAGE 속성 변경만으로는 정상적으로 한글을 불러올 수 없으며, DXF_ENCODING 전역환경 설정을 통해서 문제를 해결할 수 있다.

우선 불러오고자 하는 DXF 파일의 인코딩을 확인해야 한다.
 - Notepad++(http://notepad-plus-plus.org/)를 설치하고 DXF 파일을 불러온다
 - 우 하단의 인코딩 타입을 확인하면 다음과 같이 
   - ANSI 인 경우 : EUC-KR 또는 CP949
   - ANSI as UTF-8인 경우 : UTF-8

2. 환경설정
QGIS 바로가기 아이콘의 등록정보를 확인 후 다음과 같이 qgis-dev.bat 파일을 Notepad++에서 불러온다. 이하 [QGIS Weekly]는 설치된 QGIS 버전에 따라 다를 수 있으며, 아래는 2013년 8월 말 기준 QGIS Weekly version(http://qgis.org/downloads/weekly/)을 설치한 경우

예) C:\Program Files\QGIS Weekly\bin\qgis-dev.bat
정식버전의 경우 qgis.bat 파일이 될 것이다.

set GDAL_FILENAME_IS_UTF8=YES 다음 라인에 DXF_ENCODING 정보를 추가한다.

DXF 인코딩이 UTF-8인 경우 : set DXF_ENCODING=UTF-8
DXF 인코딩이 ANSI 인 경우 : set DXF_ENCODING=EUC-KR
3. 불러오기
이제 QGIS를 새로 실행한 후 [Layer] --> [Add Vector Layer...] 메뉴를 실행 후 파일 유형을 All files (*) (*.*) 또는 AutoCAD DXF [OGR] (*.dxf *.DXF) 를 선택하고 DXF 파일을 불러온다.


DXF의 원본 좌표체계를 선택 후 불러올 타입(Point[TEXT], LineString, Polygon)을 선택한다.

다음과 같이 Point를 Text 필드로 라벨을 설정하면 한글이 표시된다.

다음 화면은 환경 설정 후 정상적으로 한글이 표시된 지도이다.


이제 불러온 DXF 파일 레이어를 선택 후 오른쪽 마우스를 눌러 [Save As...] 메뉴를 실행 후 Shapefile로 저장하면 된다.

4. QGIS에 내장된 ogr2ogr 사용하는 경우
여러개의 DXF 파일을 Shapefile로 변환하는 경우에는 Command 창에서 ogr2ogr 명령어를 사용하면 된다.

ogr2ogr -f "ESRI Shapefile" h_point.shp      -overwrite 33607068.dxf -where "OGR_GEOMETRY='POINT'"
ogr2ogr -f "ESRI Shapefile" h_linestring.shp -overwrite 33607068.dxf -where "OGR_GEOMETRY='LINESTRING'"
ogr2ogr -f "ESRI Shapefile" h_polygon.shp    -overwrite 33607068.dxf -where "OGR_GEOMETRY='POLYGON'"

만약 변환하는 중에 다음과 같은 경고가 발생하는 경우가 있다.

C:\Program Files\QGIS Weekly\bin>ogr2ogr -where "OGR_GEOMETRY='POINT'" -f "ESRI Shapefile" h_point.shp 33607068.dxf
Warning 6: Normalized/laundered field name: 'ExtendedEntity' to 'ExtendedEn'
Warning 6: Normalized/laundered field name: 'EntityHandle' to 'EntityHand'
Warning 1: One or several characters couldn't be converted correctly from UTF-8 to ISO-8859-1.
This warning will not be emitted anymore

위와 같은 경고가 발생하는 경우 DXF파일을 열어서 $DWGCODEPAGE 속성을 삭제한 후 재시도하면 해결된다.

$DWGCODEPAGE
  3
ANSI_949
  9

5. 참고
 - http://trac.osgeo.org/gdal/wiki/ConfigOptions
 - http://www.gdal.org/ogr/drv_dxf.html

2013년 8월 20일 화요일

GeoServer Chart Extension 소개

OGC SLD(Styled Layer Descriptor)를 사용하여 차트 심볼을 설정하기는 어렵습니다.

GeoServer는 이를 위해 External References(PointSymbolizer의 ExternalGraphic)를 이용한 차트 익스텐션을 제공합니다.

Google Charts API 사용법과 같으므로 구글 차트 API를 이용해 본 경험자라면 쉽게 이해할 수 있을 듯 합니다.

구글 차트 API의 모든 파라미터를 지원하지는 않지만 SLD를 잘 적용하면 멋진 통계지도 서비스가 가능하리라 봅니다.

▣ Sample data & sld files
 - shapefile : https://www.dropbox.com/s/31cay65nr1v9yzm/admin_sgg.zip
 - pichart sld : https://www.dropbox.com/s/8nmvx9edqmpxojo/admin_sgg_pichart.sld
 - barchart sld : https://www.dropbox.com/s/d27kdv5lrgo55gl/admin_sgg_barchart.sld
 - shapefile에는 cnt_eve, cnt_sub, cnt_sto, pop_den 필드(numeric)가 있음

▣ Pi Chart
아래 이미지는 위 pichart sld를 적용한 결과이며 바탕, 파이 차트, 레이블 3가지의 룰을 사용했습니다.
차트 크기는 pop_den이라는 필드를, 차트 데이터는 cnt_eve, cnt_sub, cnt_sto 필드를 사용하며, 차트 데이터의 경우 여러 필드의 연산을 적용해도 됩니다.

▣ Pi Chart SLD

<Rule>
  <Name>Chart</Name>
  <MinScaleDenominator>100</MinScaleDenominator>
  <MaxScaleDenominator>500000</MaxScaleDenominator>
  <PointSymbolizer>
    <Graphic>
      <ExternalGraphic>
        <OnlineResource
          xlink:href="http://chart?cht=p&amp;chd=t:${cnt_eve},${cnt_sub},${cnt_sto}&amp;chco=FF0000,00FF00,0000FF&amp;chf=bg,s,FFFFFF00" />
        <Format>application/chart</Format>
      </ExternalGraphic>
      <Size>
        <ogc:Add>
          <ogc:Literal>20</ogc:Literal>
          <ogc:Mul>
            <ogc:Div>
              <ogc:PropertyName>pop_den</ogc:PropertyName>
              <ogc:Literal>35000.0</ogc:Literal>
            </ogc:Div>
            <ogc:Literal>60</ogc:Literal>
          </ogc:Mul>
        </ogc:Add>
      </Size>
    </Graphic>
  </PointSymbolizer>
</Rule>

▣ Bar Chart
아래 바 차트 외에 스택 차트도 지원합니다. 아래 SLD에서 cht=bvg 옵션을 구글 API를 참고하여 변경하면 됩니다.

▣ Bar Chart SLD
<Rule>
  <Name>Chart</Name>
  <MinScaleDenominator>100</MinScaleDenominator>
  <MaxScaleDenominator>500000</MaxScaleDenominator>
  <PointSymbolizer>
    <Graphic>
      <ExternalGraphic>
        <OnlineResource
          xlink:href="http://chart?cht=bvg&amp;chd=t:${cnt_eve}|${cnt_sub}|${cnt_sto}&amp;chco=FF0000,00FF00,0000FF&amp;chf=bg,s,FFFFFF00" />
        <Format>application/chart</Format>
      </ExternalGraphic>
      <Size>
        <ogc:Add>
          <ogc:Literal>50</ogc:Literal>
          <ogc:Mul>
            <ogc:Div>
              <ogc:PropertyName>pop_den</ogc:PropertyName>
              <ogc:Literal>25000.0</ogc:Literal>
            </ogc:Div>
            <ogc:Literal>60</ogc:Literal>
          </ogc:Mul>
        </ogc:Add>
      </Size>
    </Graphic>
  </PointSymbolizer>
</Rule>

▣ 참조
  - http://blog.geoserver.org/2009/06/01/geoserver-chart-extension/
  - http://blog.geoserver.org/2008/12/08/dynamic-symbolizers-part-1/
  - https://developers.google.com/chart/image/docs/chart_params

2013년 8월 17일 토요일

한국오픈소스GIS 솔루션데이 안내

안녕하세요?
상업적 오픈 소스 GIS 기업체의 연대인 '한국오픈소스GIS포럼'에서 제1회 '오픈소스GIS솔루션데이' 행사를 오는 8월 28일, 상암동 누리꿈 스퀘어 비즈니스 타워 4층에서 개최합니다.

이번 행사를 통해 '한국오픈소스GIS포럼'이 어떤 조직이며, 오픈소스GIS가 어떻게 현업에서 실제로 잘 적용되고 있는지 등을 살펴 보실 수 있습니다.

상세한 프로그램은 첨부된 그림을 참고하시기 바랍니다.

이제 오픈소스GIS는 회의와 의심을 넘어서 새로운 성장 동력으로 전 세계적으로 인정받고 있습니다. 이런 흐름 속에서 '믿고 쓰는 오픈 소스 GIS'를 만드는데 한국오픈소스GIS포럼이 적극적인 역할을 수행하도록 하겠습니다.

경품 추첨도 있으니 많은 분들을 8월 28일에 뵐 수 있기를 기대합니다.

감사합니다.

신상희



출처: OSGeo(Open Source GeoSpatial) 한국어 지부 - OSGeo Korean Chapter

2013년 7월 21일 일요일

[Lifelog] Density Map of Foursquare Check-ins

▣  FourSquare log
 - 2010년 5월부터 2013년 7월까지 3년 2개월 사용
 - 약 4700 번의 체크인 기록.

▣ Density Map 1

▣ Density Map 2
▣ Tag
 - uDig,  GXT Toolbox 의 Kernel Density
 - VWorld basemap

2013년 6월 27일 목요일

[GeoTools Data Store] 국내 공간 DBMS 및 파일 포맷 지원

▣ 정보통신산업진흥원(이하 NIPA)에서 진행하는 공개 소프트웨어(SW) 지원 사업인 ’2013년 공개 SW 개발 지원사업’ 의 자유과제 부분에 지원한 망고시스템의 ‘Java 기반의 오픈 소스 GIS(GeoServer, uDig)를 지원하는 국내 공간 DBMS 드라이버의 개발’ 과제가 선정되었습니다.

▣ NIPA의 ‘공개SW 개발 지원사업’은 최신 공개SW 기술을 이용하여 공개SW 개발 및 확대를 위한 사업으로 기업, 개인 사업자, 대학 등에 공개SW 개발 프로젝트와 커뮤니티 운영을 지원하는 사업입니다.

▣ 이제 2010년 개인적으로 개발했던 다음의 내용을 기초로 GeoTools 모든 버전을 계속적으로 지원할 수 있는 체계를 마련할 수 있게 되었습니다.
 - [FOSS4G]Altibase Spatial JdbcDataStore for GeoTools, GeoServer
 - Spatial Data를 지원하는 국산 DBMS GeoTools용 JdbcDataStore 확장

▣ 개발 내용
Java 기반의 오픈소스 GIS(GeoTools, GeoServer, uDig GIS)에서 사용가능한 국내 공간 DBMS 및 파일포맷 드라이버 지원


○ 1차년도 GeoTools Data Store를 확장
 - Altibase Spatial
 - Tibero Spatial
 - Kairos Spatial
 - 국토지리정보원 NGI 포맷

○ 2차년도 uDig Data Store를 확장(계획)
 - Altibase Spatial
 - Tibero Spatial
 - Kairos Spatial
 - 국토지리정보원 NGI 포맷

▣ Source Code Repository
 - SourceForge (https://sourceforge.net/p/gt-jdbc-korean/)
 - GitHub (https://www.github.com/mangosystem/gt-jdbc-korean/)

▣ 공개 일정
 - Altibase Spatial : 2013년 06월 ~ 08월
 - Tibero Spatial : 2013년 08월 ~ 09월
 - Kairos Spatial : 2013년 09월 ~ 10월
 - 국토지리정보원 NGI Format : 2013년 10월 ~ 11월

많은 관심 부탁드립니다.

2013년 5월 2일 목요일

[정보] 대한민국 특별광역시도 및 시군구청

2013년 5월 현재 대한민국 특별광역시도 및 시군구청 현황입니다.

누락되었거나 수정해야 할 내용이 있으면 아래 [온라인 편집 페이지]에서 편집 가능합니다. 모두 공개 해 놓은 상태이며, 누구나 내려받으실 수 있습니다.

■ 온라인 편집 페이지
 - https://docs.google.com/spreadsheet/ccc?key=0AhJq3V125089dHdZN3R0bmVxZlRUMFVDTVBkMkxZZVE&usp=sharing

[정보] 국내 GIS 관련 학회

2013년 5월 현재 국내 GIS 관련 학회 현황입니다.

누락되었거나 수정해야 할 내용이 있으면 아래 [온라인 편집 페이지]에서 편집 가능합니다. 모두 공개 해 놓은 상태이며, 누구나 내려받으실 수 있습니다.

■ 온라인 편집 페이지
 -  https://docs.google.com/spreadsheet/ccc?key=0AhJq3V125089dFQwaXRtR0M2ZVBhbU9hZjBKdUI2dUE&usp=sharing

[정보] 국내 GIS 관련대학 및 학과

2013년 5월 현재 국내 GIS 관련대학 및 학과 현황입니다.

누락되었거나 수정해야 할 내용이 있으면 아래 [온라인 편집 페이지]에서 편집 가능합니다. 모두 공개 해 놓은 상태이며, 누구나 내려받으실 수 있습니다.

■ 온라인 편집 페이지
 - https://docs.google.com/spreadsheet/ccc?key=0AhJq3V125089dDRsZDY3dUc1Wm5VUWloMTExVEczUmc&usp=sharing

Customizing GIS Programs


2013년 3월 21일 목요일

[정보] 2013년 현재 국내 GIS 관련 업체 현황

2013년 3월 현재 국내 GIS 관련 업체 현황입니다. 현재까지 약 220여개 업체를 수집했습니다. 현재 누락된 회사분들께는 대단히 죄송합니다~

누락되었거나 수정해야 할 내용이 있으면 아래 [온라인 편집 페이지]에서 편집 가능합니다. 모두 공개 해 놓은 상태이며, 누구나 내려받으실 수 있습니다.

■ 1차 수집방법
 - 국가지리정보포털(http://www.ngis.go.kr/), 사람인(http://www.saramin.co.kr), 코참비즈(http://www.korchambiz.net/) 사이트 검색해서 1차 수집
 - 누락된 회사 검색 및 추가
 - 사업분야, 홈페이지, 대표자 ,전화,팩스, 설립일, 주소 등 항목 각 홈페이지 접속해서 확인

■ 온라인 편집 페이지
 - https://docs.google.com/spreadsheet/ccc?key=0AhJq3V125089dGdqMF90N0RyZUlFa1V2Y2xEY1o0ekE#gid=0

■ 주요 출처
 - 국가지리정보포털: http://www.ngis.go.kr/
 - 사람인: http://www.saramin.co.kr
 - 코참비즈: http://www.korchambiz.net/

■ 분포

2013년 2월 5일 화요일

[QGIS] TMS for Korean users Plugin

QGIS(http://www.qgis.org/)에서 Daum(일반, 위성, 위성겹쳐보기, 지형), Naver(일반, 위성, 위성겹쳐보기, 지형, 지적편집도), Olleh(일반, 위성, 위성겹쳐보기, 지형), 공간정보 오픈플랫폼 VWorld(일반, 위성, 위성겹쳐보기) 지도를 배경지도로 사용할 수 있는 플러그인 입니다.

현재 QGIS 인기 플러그인인 OpenLayers Plugin 소스코드 분석 후 수정하여 만들었습니다.

▣ 지원버전 및 설치전 요구사항
 - QGIS 1.8 ~ QGIS 2.6
 - QGIS에서 한국 좌표계 설정 작업: http://www.osgeo.kr/44
 - 설치방법은 일반적인 QGIS 플러그인 설치과정과 동일

▣ Plugin 설치 및 사용
 - QGIS Plugins -> Fetch Python Plugins... 실행
 - Plugins 탭에서 Korea 또는 tms 검색
 - QGIS 2.2 이하: Plugins -> TMS for Korea -> 레이어 선택
 - QGIS 2.4 이상: Web -> TMS for Korea -> 레이어 선택

▣ 플러그인 저장소
 - http://plugins.qgis.org/plugins/tmsforkorea/

▣ 소스코드 저장소
 - https://github.com/MapPlus/qgis-tmsforkorea-plugin

▣ Changelog
 - 0.1.0 : Daum(Street, Satellite), Naver(Street, Satellite, Hybrid, Cadstral) layers
 - 0.2.0 : Daum(Hybrid, Physical) layers
 - 0.3.0 : Olleh KT(Street, Satellite, Hybrid) layers, QGIS 1.9.x 버전 지원
 - 0.4.0 : VWorld(Street) layers
 - 0.4.1 : VWorld(Satellite, Hybrid) layers
 - 0.5.0 : Support for QGIS 2.0. This is the first release of the QGIS 2.x series.
 - 0.5.1 : VWorld(Satellite, Hybrid) layers
 - 0.5.2 : Final version for QGIS 2.2
 - 1.0.0 : The first release of the QGIS 2.4 version. Ported from OpenLayers Plugin 1.3.3, Special thanks to Pirmin Kalberer, Sourcepole.

▣ 활용 사례
 - 국립공원 QGIS 활용 지침서: http://blog.daum.net/geoscience/
 - 등산학교 GPS 소프트웨어 활용: http://cafe.daum.net/GPSGIS/Lrtt/1336
 - OHSP(Open Hydrology System Project): http://blog.daum.net/wh1988ha/14

▣ Daum 지도

▣ Naver 지도
 
▣ VWorld 지도