김형준 GIS 연구소 (for Developers)  
Front Page
Notice | E-Mail | Admin | Write Article   
 
2012/02에 해당하는 글 12건
2012/02/23   XrGeocoder - 주소를 좌표로 변환 (54)
2012/02/21   [BlackPoint] SHP에서 원하는 도형을 하일라이팅 하기
2012/02/21   [Java] 특정 폴더에서 원하는 확장자를 가지는 파일 목록 구하기 (2)
2012/02/17   [BlackPoint-Xr] 레이어의 전체 Feature들의 속성 및 도형 정보 구하기
2012/02/10   정규표현식을 이용한 SHP 추출, ExpressionsSHP (2)
2012/02/09   SQL문 기록 (6)
2012/02/08   맥북에어 6개월간 사용한 후 느낌..
2012/02/03   [FingerEyes] 지오메트리의 버퍼(Buffer) 연산
2012/02/01   [FingerEyes] Geometry로 Feature 가져오기
2012/02/01   [FingerEyes] FID 리스트로 Feature 가져오기
2012/02/01   [FingerEyes] UPDATE, INSERT, DELETE SQL 문 실행
2012/02/01   영화, "부러진 화살"


2012/02/23 09:34 2012/02/23 09:34
XrGeocoder - 주소를 좌표로 변환
XrGeocoder 2.0이 3월 중순쯤 새롭게 릴리즈될 계획입니다. 혹.. 개선할 사항 또는 추가할 기능에 대해서 메일 또는 댓글을 통해 알려주시면 참고하여 반영하도록 하겠습니다. (2012/02/23, Dip2K)

예전부터 한번 만들어 제공해 보려는 마음은 있었으나... 블로그를 통해 요청하시는 분도 계시고... 해서 이제서야 만들어 올려봅니다.. 주소를 WGS84 경위도 좌표로 변환해 주는 툴인데요.. 이처럼 주소를 좌표로 매칭해주는 것을 GIS 용어로 지오코딩(Geocoding)이라 한다 합니다.. 내부적으로 핵심이 되는 주소->좌표 변환 기능은 네이버, 다음 그리고 구글의 Open API를 사용했습니다.. 처음에는 네이버를 사용하고 네이버로 않되면 다음의 OpenAPI.. 그래도 않되면.. 최종적으로 구글의 OpenAPI를 사용합니다.. 이렇게 하니 성공률이 상당히 높아집니다.. 그리고 이렇게 변환된 좌표를 SHP 파일로 만들어주는 기능을 위해 듀라맵을 사용하였습니다.. 그러니 이 툴을 원활하게 실행하고자 한다면 듀라맵을 필요(클릭)로 합니다.. 또한 이 프로그램은 .NET을 필요로 합니다.. 아래는 실행 예에 대한 화면입니다..

사용자 삽입 이미지

처음에 주소 읽기 버튼을 통해 텍스트 파일로부터 주소를 읽어옵니다.. 그리고 주소에 대한 필드명을 지정하고 저장할 SHP 파일을 지정한 후.. 시작 버튼을 누르면 됩니다.. 주소 읽기에 사용되는 텍스트 파일의 형식에 대한 예는 아래와 같습니다..

사용자 삽입 이미지

첫번째 줄이 필드명입니다.. 그리고 그 다음 줄부터는 각 필드명에 대한 값이구요.. 구분자는 | 를 사용합니다.. 위의 예에서 만들어진 SHP 파일은 WGS84 좌표계입니다.. 이렇게 만들어진 SHP 파일을 동일한 좌표계를 가진 행정동과 함께 중첩해 보면 아래와 같은 결과를 얻을 수 있답니다..

사용자 삽입 이미지

앞서도 말씀드렸지만... 이 툴은 네이버, 다음 그리고 구글의 주소를 좌표로 변환하는 OpenAPI를 사용했습니다.. 해서 각 OpenAPI에 대한 유효한 Key 값을 지정해 줘야 합니다.. 지정해 주고 위해서 이 툴의 OpenAPI Key 관리 버튼을 눌러 지정해 줄 수 있습니다..

사용자 삽입 이미지

물론.... 기본적으로 사용하는.... OpenAPI 키가 지정되어 있습니다만.. 혹시 않되다면 직접 OpenAPI 키를 발급받아 지정해주시면 별 문제 없이 실행이 가능합니다..
Tag : ,
2012/02/21 10:29 2012/02/21 10:29
[BlackPoint] SHP에서 원하는 도형을 하일라이팅 하기

SHP 파일로된 레이어에서 원하는 도형은 FID값을 통해 얻을 수 있습니다. 이렇게 얻은 도형을 선택되었다는 의미를 사용자에게 전달하기 위해 다른 색상으로 그려줄 필요가 있습니다. 아래의 코드는 이런 경우에 대한 예제입니다. 먼저 SHP 파일로된 레이어는 레이어의 이름을 통해 아래와 같은 방식으로 레이어를 얻을 수 있습니다.
2번 코드에서 공간 도형을 얻어내기 위해 ShapeAccess의 인스턴스를 얻고 있습니다. 그리고 FID가 100번인 공간 도형을 얻는 코드는 아래와 같습니다.
4번 코드에서 sr을 통해 공간 도형을 얻을 수 있고 6번 코드쯤에서 얻은 공간 도형을 하일라이팅 시키는 코드군이 위치합니다. 사실... 특별히 도형을 하일라이팅 시키는 코드를 블랙포이트에서 제공하지 않습니다. 다만 원하는 결과를 그래픽 레이어를 통해 얻을 수 있습니다. 즉, 앞서 얻은 공간 도형의 좌표를 통해 그래픽 레이어에 똑 같은 모양으로 추가하고.. 추가한 그래픽 항목의 색상을 원하는 하일라이팅 색상으로 지정만 해주면 됩니다. 위의 코드에서 6번 부분에 해당하는 코드는 아래와 같습니다.
그래픽 레이어는 앱이 처음 실행될때 레이어로써 추가되어져 있습니다. 이 그래픽 레이어의 이름을 hilight_gl이라고 지정해 주었으므로 어디에서나 이 그래픽 레이어를 참조할 수 있습니다. 위의 코드를 응용해서 앱의 실행 결과는 아래와 같습니다. 어떤 도형을 터치하면 터치된 도형이 하일라이팅 되도록 하는 경우입니다.

사용자 삽입 이미지

Tag : , ,
2012/02/21 10:14 2012/02/21 10:14
[Java] 특정 폴더에서 원하는 확장자를 가지는 파일 목록 구하기

원하는 폴더 안에.. 특정한 확장자를 가지는 파일 목록을 얻어야 할때가 있습니다. 예를 들어서 D:/TEMP라는 폴더안에 확장자가 SHP인 파일의 목록을 배열 형태로 반환하도록 하는 경우이지요. 이때 사용할만한 함수입니다.

제가 이 함수가 필요했던 이유는.. 특정 폴더에 존재하는 수백개의 항공영상이나 수백개의 SHP 파일을 한꺼번에 레이어로 추가하고자 하는 필요 때문이였습니다.

아래의 코드는 안드로이드 기반의 GIS 엔진인 블랙포인트에서 위의 함수를 사용해 25cm 해상도의 192개의 항공영상(GEOTIFF 기준으로 40GB 이상)과 일정한 격자로 나눈  SHP 파일 185개(전체 용량 85MB)를 올리는 코드예입니다.

아래는 위의 코드에 반영된 시스템에 대한 실행 화면입니다. 클릭하면 원본 크기로 볼 수 있습니다.

사용자 삽입 이미지

Tag : , , , , ,
2012/02/17 04:17 2012/02/17 04:17
[BlackPoint-Xr] 레이어의 전체 Feature들의 속성 및 도형 정보 구하기
속성과 도형 데이터를 하나로 묶은 것을 피쳐(Feature)라고 할때.. 대표적으로 SHP 파일과 DBF 파일의 쌍을 예로 들수 있겠습니다. 이 Feature의 공간 데이터와 속성 데이터를 읽는 예에 대한 전체 코드 구성입니다.

이 코드는 블랙포인트 2.0에서 제공하는 API입니다. 블랙포인트 1.0에서는 제공되지 않습니다.
Tag : , ,
2012/02/10 15:33 2012/02/10 15:33
정규표현식을 이용한 SHP 추출, ExpressionsSHP
SHP 파일의 속성값을 기준으로 원하는 값과 일치하는 도형만을 추출해 새로운 SHP 파일로 추출해 내는 툴입니다. 일치하는 속성값의 기준은 정규표현식을 사용합니다.

지적도를 예로 들어 JIBUN이라는 필드값이 '도'로 끝나는 모든 도형을 추출하라는 정규 표현식은 '도$'가 됩니다. 참고로 '도'로 끝나는 경우 도로에 해당합니다. 아래의 실행 화면은 이와 같은 예에 대한 실행 예입니다.

사용자 삽입 이미지

보시는 것처럼 입력 SHP 파일을 지정하고 대상이 되는 필드, 정규표현식값.. 끝으로 조건과 일치하는 도형을 저장할 새로운 SHP 파일명을 지정하면 됩니다. 위의 실행에 대한 결과는 아래와 같습니다.

사용자 삽입 이미지

보시는 것처럼.. 도로만이 추출된 결과를 볼 수 있습니다. 이 프로그램은 듀라맵(http://www.gisdeveloper.co.kr/notice/574)을 이용해 개발되었으므로 듀라맵을 PC에 등록해줘야 합니다. 이 프로그램에 대한 소스 코드와 실행 파일을 아래 링크를 통해 다운받을 수 있습니다.


정규표현식을 통해 원하는 값을 선택해 내는 일은 매우 유연한 방법입니다. 원하는 경우와 상황에 대한 정규표현식에 대해서 댓글을 통해 알려주시면 성의껏 답변해 드리겠습니다.
Tag : , ,
2012/02/09 10:32 2012/02/09 10:32
SQL문 기록
업무중에 필요해서 작성한 쿼리문을 기록해 둡니다.

사용자 삽입 이미지

2~7번은 조회하고자 하는 필드와 알리아스(Alias)입니다. 알리아스는 단순히 이름이므로 중복이 가능합니다. 9~10번은 조회 대상이 되는 테이블과 그에 대한 알리아스입니다. 12~21번은 검색 조건입니다. 결과는 아래와 같습니다.

사용자 삽입 이미지

혹시.. 퍼포먼스를 향상시킬 수 있는 개선할 점이나.. 문제가 되는 부분이 있으면 피드백 부탁드립니다.
2012/02/08 10:03 2012/02/08 10:03
맥북에어 6개월간 사용한 후 느낌..
사용자 삽입 이미지

익숙한 것이 아닌 새로운 것을 통한 어색함 그리고 불편함을 끝으로 밀려오는 짜증스러움.. 난 아직도 맥이 Windows보다 좋은게 뭔지 모르겠습니다.. 대부분의 개발 업무를 맥으로 하고 있고.. 맥을 사용함에 제법 익숙해진 요즘이지만....
2012/02/03 16:51 2012/02/03 16:51
[FingerEyes] 지오메트리의 버퍼(Buffer) 연산
핑거아이즈는 공간서버인 지오서비스(GeoService-Xr)의 지오프로세싱(Geoprocessing) 서비스를 통해 지오메트리의 버퍼 연산을 수행할 수 있습니다. 아래의 코드는 레이어의 구성 항목 중 하나의 도형에 대해 버퍼 반경값 10으로 하여 버퍼 연산을 수행하는 코드입니다.
1번과 2번 코드를 통해 버퍼 연산 대상이 되는 도형을 가져옵니다. 그리고 이 도형에 대한 지오메트리 정보를 WKT 형식으로 변환하는 코드가 5~6번 코드입니다. 마지막으로 7~13번 코드를 통해 공간서버로 요청을 날립니다. 아래의 이미지는 버퍼 연산의 대상이 되는 도형입니다.

사용자 삽입 이미지

버퍼 연산 서비스를 요청하고 그 결과는 onBufferRequestCompleted 함수를 통해 전달되며 다음과 같은 예로 구성될 수 있습니다.
버퍼 연산 결과에 대한 지오메트리 역시 WKT 형식입니다. 연산 결과를 다시 대상이 되는 도형에 반영하고 있습니다. 그 결과는 다음과 같습니다.

사용자 삽입 이미지
Tag : , ,
2012/02/01 16:02 2012/02/01 16:02
[FingerEyes] Geometry로 Feature 가져오기
Geometry로 Feature를 가져온다는 의미는 임의의 지오메트리와 공간상에서 교차하는 Feature를 가져온다는 의미입니다. 임의의 지오메트리이므로 폴리곤, 폴리라인, 포인트 등 제약이 없습니다. 기준 지오메트리는 WKT 형식으로 쉽게 지정할 수 있습니다. 다음은 지정한 폴리라인과 교차하는 Feature를 서버측으로부터 가져오라는 코드 예입니다.
대상이 되는 레이어를 1번 코드를 통해 가져옵니다. 속성과 도형에 대한 기능이므로 XrShapeMapLayer만이 가능합니다. 그리고 4번에서 queryByGeometry 매서드를 통해 쿼리 합니다. 첫번째 인자는 기준 지오메트리로써 WKT 형식으로 지정합니다. 그리고 두번째 인자는 도형 데이터 뿐만 아니라 속성 데이터까지 가져오라는 의미입니다. 그리고 세번째 인자는 공간 데이터 쿼리가 완료되었을때 발생하는 콜백함수이며 아래는 그 예입니다.
서버 측으로 받은 결과에서 도형의 중심점과 2번째 속성값만을 확인하는 예입니다.
Tag : , ,
2012/02/01 15:21 2012/02/01 15:21
[FingerEyes] FID 리스트로 Feature 가져오기
FID값은 FeatureID로써 이 값에 대한 Feature를 가져오는 예제 코드입니다. 참고로 Feature는 공간 데이터 + 속성 데이터의 셋입니다.
먼저 대상 레이어를 파악해야 합니다. FID에 관련된 레이어이므로 1번 코드에서 XrShapeMapLayer가 필요하고 요청할 FID의 리스트를 3~4번에서 만들고 있습니다. 그리고 5번 코드에서 queryByFIDs 매서드를 통해 리퀘스트를 서버에 날립니다.

서버에 대한 응답은 비동기적으로 처리되므로 콜백함수가 필요하며 queryByFIDs의 세번째 인자에 지정합니다. 두번째 인자는 공간 데이터 뿐만 아니라 속성 데이터까지 가져오라는 의미입니다. 그렇다면 서버로부터 받은 Feature를 처리하기 위한 콜백함수를 살펴보면, 그 예는 다음과 같습니다.
결과가 오면 도형의 중심점과 두번째 속성값을 표시하는 코드입니다.
Tag : , ,
2012/02/01 14:02 2012/02/01 14:02
[FingerEyes] UPDATE, INSERT, DELETE SQL 문 실행
핑거아이즈는 서버측의 DBMS에 UPDATE, INSERT, DELETE와 같은 SQL 문을 실행할 수 있도록 요청할 수 있습니다. 다음 코드는 그 예입니다.
SQL문의 실행을 서버측에 요청하고 그 결과를 받아오는 일련의 과정을 사용하기 쉽게 캡슐화된 XrUpdateTableService 클래스를 이용합니다. 서버의 IP와 사용하는 DBMS의 종류 그리고 SQL 문이 서버측에서 성공적으로 실행되었을때와 실패했을때에 대한 콜백함수를 생성자의 인자로 지정합니다.

아래는 SQL문이 성공적으로 실행되었을때와 실패했을때에 대한 콜백함수의 예입니다.
Tag : , ,
2012/02/01 10:20 2012/02/01 10:20
영화, "부러진 화살"
이 영화를 보고 떠오른 영화가.. "도가니"였습니다. 도가니가 특수학교 학우라는 소외된 범위에 대한 매우 안타까운 이야기였다면.. 이 영화는 그냥.. 우리의 현실을 그린 실화를 바탕으로 한 영화라고 생각합니다..

사용자 삽입 이미지

꽤 늦은 저녁.. 사은품으로 받은 티켓이 아까워 예매를 하고 홀로 본 영화입니다. 눈이라고 해봐야 별로 내리지 않는 날임에도.. 기상청 스스로의 책임 회피를 위한 대설주의보가 발령된 어제지요..

가진자들이 정한 테두리 안에서 말 잘 듣고 튀지만 않으면.. 그럭 저럭.. 살만한 세상.. 이건 우리나라나.. 다른 나라나 다 마찬가지라고 생각합니다.. 다만.. 그 정도의 차이는 분명 존재한다고 생각합니다.

가진자들이 이미.. 그렇게 하기로 결정한 것들 앞에서는 상식이나.. 정의나.. 이런것들 따위는 아무런 의미가 없어져 버리는.. 무서운 현실을 담아 내고 있습니다. 현실을 바탕으로 한 영화이기에.. 영화속의 무서운 현실이.. 영화가 끝나고 난 뒤.. 다시 현실로 돌아와서도.. 내 가슴을 떨리게 하였습니다..

그래도.. 이 영화는 이런 현실속에서 살아갈 수 있는 방향과 방법을 제시합니다.. "스스로 계속 똑똑해져라, 그리고 포기하지말고 나아가라.".. 식상하기만한.. 뭐 이런.. 할 방향과 방법이라고 생각됩니다만.. 이게.. 방법입니다.. 현실은.. 어디까지나 현실이니까요..

어떤 영화든.. 보는 사람에게.. 그 나름대로 해석되고.. 자신이 가지고 있는 생각들과 섞여 그 사람에게 투영됩니다.. '부러진 화살'이 요즘 내가 생각하고 있는 것들과 섞여 만들어낸 생각.. 이 생각이 올해 내가 나아가고 내가 해야할 일들에 큰 영향을 줄것입니다..
BLOG main image
 Notice
DuraMap-Xr 소개 및 다운로드
[오픈소스] SimpleSHP v0.1
FingerEyes-Xr 소개 및 다운로드
OpenGL Tutorials
 Category
전체 (535)
GIS 개발 (149)
프로그래밍 (234)
스치는 생각들 (129)
번역 또는 집필 (3)
 TAGS
GIS Xr OpenGL Shader BlackPoint FingerEyes Algorithm Java Map Engine WPF
 Calendar
«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
 Recent Entries
XrGeocoder - 주소를 좌표... (54)
[BlackPoint] SHP에서 원...
[Java] 특정 폴더에서 원... (2)
[BlackPoint-Xr] 레이어의...
정규표현식을 이용한 SHP... (2)
 Recent Comments
어셈블리 바인딩 로깅이...
선 - 12:02
아!어플 실행은 바로 되요...
선 - 11:41
실행 중에 발생하는 건지....
김형준 - 09:31
음.'응용프로그램에서 처...
선 - 03:17
좋은 자료 감사합니다!
goodguest - 02/21
좋은 정보를 왜 비공개로...
김형준(Dip2K) - 02/21
관리자만 볼 수 있는 댓글...
비밀방문자 - 02/21
".NET 2 설치 문제"로 구...
김형준 - 02/21
안녕하세요. xrgeocoder를...
김성훈 - 02/20
구글링, JPG to JGW.
김형준 - 02/16
 Archive
2012/02
2012/01
2011/12
2011/11
2011/10
2011/09
2011/08
2011/07
2011/06
2011/05
2011/04
2011/03
 Link Site
Adobe Flex 3 Help
Cartograph 2.0
GADM
GIS 위키디피아
GIS 프로그래밍 연구소
MapTools.org
OGC
OGRE3D
OSGeo 한국 지부
Paul Bourke Site
Wikipedia
국가수자원관리 정보시스템
국립지리원
국토연구원
국토해양부
네이버 과학
대한측량협회
류광님의 블로그
이민파님의 공간분석과 리...
지오서비스(GeoService)
 Visitor Statistics
Total : 937821
Today : 307
Yesterday : 583
태터툴즈 배너
rss