김형준 GIS 연구소 (for Developers)  
Front Page
Notice | E-Mail | Admin | Write Article   
 
2010/08에 해당하는 글 10건
2010/08/26   [안드로이드] 타이머 기능 (2)
2010/08/26   [Java] @Override 어노테이션의 사용
2010/08/24   안드로이드의 패스위의 텍스트
2010/08/21   안드로이드의 선언 태그에 대한 코드화 : 전개(Inflation)
2010/08/19   SHP을 SQL 문으로 변환해 주는 툴 - SHP2SQL
2010/08/18   구글맵의 타일맵의 크기 (2)
2010/08/13   지금 내게 필요한 것은 오직.. (2)
2010/08/13   SHP 파일을 TXT 파일로 변환해 주는 툴 - Shp2Txt
2010/08/11   플래시 on 안드로이드
2010/08/10   클라언트에 대한 서버측에서의 에러 응답


2010/08/26 10:57 2010/08/26 10:57
[안드로이드] 타이머 기능

처음 Windows 운영체제에서 개발언어를 익혔을때 가장 매력적인 기능이 바로 타이머(Timer) 였습니다. 개발자가 지정한 시간 간격으로 자동으로 알아서 어떤 로직을 호출해서 실행시켜 주는 것이 마치... 컴퓨터에게 일을 맡겨 놓고 나는 신경끄고 놀수있다라는 가능성이 매력적이였나 봅니다.

그러나..... 실제 지금까지 개발 현장에서 단한번도 이 타이머를 사용해 본적은 없습니다. 이유는.. 정확도가 떨어지기 때문입니다. 그러니깐... 예를 들어 1초 간격으로 실행해라고 지정해 놓지만.. 정확히 1초 마다가 아니라 경우에 따라 큰 오차가 발생하기 때문입니다..

여하튼... 이런 저런 사정을 떠나... 안드로이드에도 타이머 기능이 존재하는데.. 이 타이머 기능에 대해 정리를 해 보았습니다. 매우 정확한 시간으로 어떤 일을 반복적으로 수행해야할 경우에는 사용하기에는 부적합하지만... 그래도 어떤 일을 주기적으로 반복해서 수행해야할 경우에 매우 요긴하게 사용할 수 있는.. 매우 손쉬운 기능이 바로 이 타이머이기 때문입니다..

정리하는 수준으로 글을 전개해 나갈 것이며 타이머에 대한 예제 코드가 매우 단순하기 때문에 바로 코드 나갑니다!

10번 코드가 바로 타이머를 위한 클래스로 CountDownTimer입니다. 18번 코드에서 생성하고 있는데... 다른 여느 타이머와는 다르게 반복될 시간 간격뿐만 아니라 작동될 시간까지도 지정합니다. 즉, 생성자에게 2개의 인자를 받는데 첫번째가 작동될 시간이며 두번째가 시간 간격입니다. 위의 경우 첫번째 인자값이 10*1000이므로 10초동안 수행되며, 두번째 인자가 1000이므로 1초 간격으로 수행됩니다. 19번 코드와 23번 코드에 나타난 onTick과 onFinish는 각각 타이머 수행 코드에 대핸 매서드와 타이머가 지정된 시간(여기서는 10초)이 되었을때 발생되는 매서드입니다.

이렇게 만든 타이머의 start 매서드와 cancel 매서드를 통해 시작시키거나 작동을 중지시킬 수 있습니다. cancel 매서드의 경우 여타 다른 환경의 타이머와 다르게 취소만 될뿐.. 중지하여 중지된 시점으로부터 재개할 수는 없습니다. 또한 확인해 본바로는 cancel 매서드를 onTick 매서드 안에서 호출할 경우 의도와 다르게 타이머가 중지하지 않습니다..

이해를 돕고자 위의 코드를 실행했을 경우 애뮬레이터에서 나타나는 UI는 아래 그림과 같습니다.

사용자 삽입 이미지

모바일에서 타이머의 기능을 어디에 활용할 수 있을까... 한번 생각을 해보면... 일정한 시간 간격으로 자신의 위치를 얻어오거나... 일정한 시간 간격으로 메일서버로부터 메일을 확인한다거나... 오히려 일반 데스크탑 환경에서보다 모바일에서 타이머의 기능은 매우 중요할듯합니다..

아뿔싸~ 레이아웃 리소스가 빠졌군요~! 실습을 하시는 분이라면 timerlayout.xml이라는 파일로해서 저장해주시면 됩니다.

Tag :
2010/08/26 10:28 2010/08/26 10:28
[Java] @Override 어노테이션의 사용

자바 언어에서 클래스를 작성할때 그 행위를 파생 클래스에 특화시키기 위해 부모 클래스의 매서드를 오버라이드(Override)하는 경우가 있습니다. 예를 들어서.. 안드로이드라는 모바일 개발 플랫폼에서 모바일 애뮬레이터의 Menu 키를 누르게 되면 Activity라는 클래스의 onCreateOptionsMenu 매서드가 호출됩니다. 즉, Activity 클래스를 상속받아 자신만의 메뉴를 만들기 위해 상속받은 클래스는 onCreateOptionsMenu 매서드를 오버라이드해야 한다는 것입니다. 아래처럼요..

자.. 이제 실행하고 Menu 키를 누르면 메뉴가 짠~하고 나타나길 기대합니다! 하지만 나타나지 않습니다.. 이유는 MenuTest라는 클래스에 Override했다고 생각하는 onCreateOptionsMenu가 Override되지 않았기 때문입니다. 분명히 위의 코드에서 Override했다고요? 눈을 크게 뜨고 보시기 바랍니다.. 네.. 철자가 틀렸습니다! 우리가 Override 했다고 생각한 것은.. 사실 새로운 onCreateOptionMenu 매서스를 추가한 것입니다.. 즉 철자가 틀렸습니다.. onCreateOptionMenu가 아니고 onCreateOptionsMenu입니다..

의도는 분명했으나 개발자도 사람인지라 철자에 대한 실수를 했습니다.. 바로 이러한 실수를 방지할 목적으로 자바에서는 @Override 어노테이션을 지원하게 되었습니다.. 이제 다시 위의 코드에 이 @Override 어노테이션을 사용해 보면 아래와 같습니다..

컴파일 해보면 에러가 발생합니다.. 에러 내용은 onCreateOptionMenu는 Override될만한 매서드가 아니라는 내용을 개발자에게 전달합니다. 여기서 개발자는 자신의 실수를 인지하고 해결책을 마련합니다. 즉, 틀린 철자를 고쳐서 말입니다.

자바라는 언어가 앞서 예를 든 개발자의 실수를 방지할 수 없으므로.. 비록 차선책이라고 생각되기는 하지만... 바로 @Override라는 어노테이션을 제공하게 되었습니다. 이 어노테이션을 제대로 활용하기 위해서는.. 일괄적으로 개발자 스스로가 Override 되는 모든 매서드에 대해서 바로 이 @Override를 붙여 놓는 것입니다. 이것은 분명히 명확하고 옳바른 습관입니다.

Tag :
2010/08/24 12:21 2010/08/24 12:21
안드로이드의 패스위의 텍스트

수년전에 오렐리라는 출판사에서 나온 자바의 2D API를 보면서... 이 API를 이용해 2D GIS 엔진을 자바로 만들면 정말 환상이겠구나... 라는 생각을 했던 적이 있었습니다. 그런데.. 안드로이드를 살펴보면서 또 다시 이런 생각이 다시 듭니다.. 안드로이드가 내세우는 주요 개발 언어가 자바라는 점과 이러한 생각은 우연이 일치이겠지만 말입니다. 또 다시 이러한 생각을 들게 만드는 안드로이드의 기능은 아래와 같은 기능 때문입니다. 즉, Path을 따라 사용자가 표현하고자 하는 텍스트를 자연스럽게 회전시켜주는 기능입니다.

사용자 삽입 이미지

참으로.. 아름답습니다! 그럼 어떻게 이렇게 하는지 안드로이드 맛보기 겸해서 코드를 잠시 살펴보도록 하겠습니다. 물론 안드로이드를 잘 아시는 분들은 걍.. 살짝 패스해주셔도 됩니다!

먼저 간단히 View를 하나 만듭니다. View 클래스는 안드로이드에서 위젯(UI 컨트롤)을 나타내는데 유용한 부모클래스입니다..

즉, 문자열이 표시될 방향을 결정할 Path 객체를 만들어주고.. Canvas의 drawTextOnPath 매서드를 통해 원하는 문자열을 표시해주기만 하는.. 매우 효율적인 API를 제공합니다. 이제 이 View를 실제로 사용하는 Activity를 정의합니다.

안드로이드에서 Activity는 실제로 화면에 표시되지는 않지만 화면을 구성하는 가장 핵심이 되는 단위로.. View를 컨트롤하여 화면에 개발자가 원하는 컨텐츠를 표시할 수 있습니다. 안드로이드의 2D 그래픽스.... 많은 모바일 API를 경험해 보지는 않았으나... 정말 이 정도로 뛰어난 2D 그래픽 API를 제공하는 모바일 개발 플랫폼이 있을까... 싶습니다..

Tag :
2010/08/21 17:48 2010/08/21 17:48
안드로이드의 선언 태그에 대한 코드화 : 전개(Inflation)

선언 태그에 대한 코드화... 이 문장이 의미하는 바는.. 예를 들어 .NET의 WPF에서 XAML로 작성된 선언적 태그들을 각 태그에 대한 C#등의 클래스로 코드화(정확히는 인스턴스화)라든지... 플렉스의 MXML로 작성된 선언적 태그들을.. 역시 각 태그에 대한 액션스크립트 클래스의 코드화를 해주는 것을 말합니다. 마찬가지로 안드로이드 역시 XML로 작성된 태그들을 각 태그에 해당되는 자바 클래스로 코드화 해주는 것이 존재합니다.. .NET이나 플렉스는 이런 전개(Inflation) 기능을 언어 차원에서 꽁꽁 숨겨두고 있지만.. 안드로이드는 개발자가 접근할 수 있도록 열어 놓았습니다. 아.. 여기서 혹시 .NET이나 플렉스 역시 열어 놓았다면 제게 알려주시기 바랍니다!

이 전개(Inflation) 기능을 안드로이드가 열어 놓은 이유는 무엇일까... 궁금했는데.. 그것은 바로 태그 하나 하나에 대한 부분적인 코드화를 위한 효율적인 방법을 제공하기 위함입니다. 예를 들어 다음과 같은 안드로이드 레이아웃 리소스에 해당되는 xml 코드가 있다고 칩시다..

딱.. 정확히.. 유일하게 Button에 대한 태그 정보만을 가지고 있습니다. 이를 안드로이드의 Button 클래스에 대해 인스턴스화를 하기 위해 개발자가 직접 전개(Inflation) 시키기 위해 전개를 위한 안드로이드 프레임웍에서 제공하는 전개 관리자를 얻어야 합니다. 방법은 3가지나 되는데.. 하나 하나 살펴보면 다음과 같습니다..

또는..

여기서 context_obj는 Activity와 같은 Context의 파생 클래스입니다. 그리고 마지막 방법은.. View 클래스의 inflate 정적 매서드를 통해 레이아웃 리소스의 ID를 인자로 받아 바로 전개시킬 수가 있습니다.

자.. 이제 전개를 수행해주는 클래스를 얻을 수 있으니.. 앞서 <Button>만을 가지고 있는 XML 데이터에 대해서 전개시키는 코드는..

위의 onCreate 매서드는 Activity의 매서드이며 전개 관리자를 얻는 방법중 앞서 세번째 방법을 사용했습니다. View.inflate의 두번째 인자가 바로 <Button>만을 가지고 있는 XML에 대한 리소스 ID입니다.

개발자에게 있어서.. 자신이 사용하는 개발툴이 개발자에게 무언가를 오픈하지 않고.. 내부적으로만 사용하고 있다는 것은.. 물론.. 안정성을 위해 어쩔 수 없는 것일 수도 있습니다. 하지만 이러한 안정성면을 떠나.. 개발자에게 최대한 접근할 수 있도록 오픈되었다는 것은 개발자에게 큰 매력이 아닐 수 없습니다..

Tag :
2010/08/19 13:13 2010/08/19 13:13
SHP을 SQL 문으로 변환해 주는 툴 - SHP2SQL
SHP 파일의 좌표 정보와 속성 정보를 DBMS에 테이블 구조를 생성하고 값을 추가하는데 필요한 SQL문을 생성해 주는 툴입니다. 현재는 포인트 타입에 대한 SHP 파일에 대해서 적용할 수 있습니다. 먼저 실행 화면은 아래와 같습니다.

사용자 삽입 이미지

위의 UI 화면에서 Export Fields에 DBMS로 내보내고자 하는 필드를 선택하면 됩니다.. 필요없는 필드값에 대해서도 제외시켜도 됩니다. 이 기능을 이용해서 DBMS에 따라 필드명으로써 사용할 수 없는 필드는 이곳을 통해 제외시켜줄 수 도 있습니다.. 위의 화면 예시처럼 입력값들을 지정한 후 변환 버튼을 누르게 되면 다음과 같은 sql 문이 담긴 텍스트 파일이 만들어 집니다..

사용자 삽입 이미지

테이블을 생성하고 생성된 테이블에 속성값을 추가하기 위한 Ansi SQL 구문으로 구성됩니다.. 이 내용을 수정해 줄 필요(테이블명)도 있을 것입니다..  이렇게 생성된 SQL 파일을 각 DBMS에서 불러와 실행해주면 간단하게 DBMS에 SHP 파일에 대한 테이블이 생성됩니다.. MySQL의 경우 soruce 명령어를 이용해서 외부의 sql 문이 담긴 파일을 실행할 수 있습니다.

이 툴의 실행을 위해서는 최신 버전의 듀라맵을 설치하셔야 합니다. 다음 url을 통해 듀라맵을 설치하시기 바랍니다.


소스 코드와 컴파일된 실행 파일 모두를 제공해 드리니.. 개발자 분이라면 목적에 맞게 커스터마징해 사용하시길 바랍니다..


아래의 이미지는 위에서 만들어진 sql 구문이 담긴 text 파일을 MySQL에서 실행시켜 만들어진 테이블을 조회해 본 화면입니다.

사용자 삽입 이미지

위의 이미지를 보시면.. X, Y 필드명으로 POI의 좌표가 자동으로 추가된 것을 확인할 수 있습니다.
Tag : ,
2010/08/18 18:56 2010/08/18 18:56
구글맵의 타일맵의 크기
정확히 말씀드리면.. 아이폰에서 구글맵에서 서비스 되는 타일맵의 크기입니다. 블로그의 방문자분 중 모바일폰의 지도 서비스에서 타일맵의 트래픽 관련 댓글을 보고.. 혹시나 해서 제가 가지고 있는 아이폰으로 요래 저래 단순하지만 확실한 방법으로 ^^; 타일맵의 크기를 찾아봤습니다. 아래는 그 크기를 알아보기 위해 얻은 캡쳐 화면입니다.

사용자 삽입 이미지

저는 처음에 64x64 크기의 타일맵을 사용할거라 예상했더랬습니다.. 아이폰의 픽셀 화소 크기가 일반 LCD 모니터의 화소 크기보다 미려해서.. 이런 판단을 하게 되었나 봅니다만.. 여튼.. 이번에 모바일쪽에서 서비스할 지도를 타일로 가공하는 작업을 눈앞에 두고 있던 차에.. 이제 타일맵의 크기를 128x128로 가공하도록 방향을 바꿔야 겠습니다..

끝으로.. 제가 가지고 있는 아이폰3의 화면 크기가 정확하지는 않지만.. 480x360인데.. 이 화면 크기면.. 위의 캡쳐 이미지 처럼 타일 이미지의 개수가 최소 9개면 충분하다는 결론입니다.. 현재 대부분의 스마트폰의 화면 크기가 이의 4배정도 되므로.. 곰곰히 생각해 보면.. 모바일 폰이든.. 일반 데스크탑에서든.. 타일맵의 크기를 공통적으로 256x256으로 하는 것도 별 무리는 없지 않을까 생각이 듭니다.. 타일맵 가공이 생각외로 상당히 시간이 많이 걸리고 손이 많이 가는 작업인지라.. 타일맵의 크기를 최대한 키워서 파일 개수를 최소로 줄여 작업하는게 수월하기 때문입니다..

요즘... 에어컨으로 인해.. 실내의 온도차이와 실외의 온도 차이가 너무 극심한것같습니다.. 실내에서 정신없이 작업하다가 잠시 밖에 볼일 보러 나갈라치면... 한마디로 쪈다는.. 쪈다는 표현이 딱이네요.. 쪕니다 쪌어요.. -_-; 극심한 온도차이로 생체리듬도 다소 흐트려진 요즘입니다.. 그래도 긴박한 요즘.. 정신 바짝 차려야하다는 생각으로 버텨봅니다..
2010/08/13 16:21 2010/08/13 16:21
지금 내게 필요한 것은 오직..
사용자 삽입 이미지
2010/08/13 16:21 2010/08/13 16:21
SHP 파일을 TXT 파일로 변환해 주는 툴 - Shp2Txt
SHP 파일은 바이너리 파일인지라.. 간단히 읽기에는 어려움이 있습니다. 해서.. SHP 파일을 일반적인 텍스트 파일로 변환하여 좌표나 속성값을 쉽게 읽거나.. 아니면 이 텍스트 파일을 읽어 자신이 원하는 또 다른 형식으로 변환하여 활용할 수 있도록 개발자를 돕는 툴입니다. 실행은 간단합니다. 아래처럼 입력할 SHP 파일을 지정하고 저장할 TXT 파일 이름을 지정해 주고 변환 버튼을 클릭하면 됩니다.

사용자 삽입 이미지

만들어진 txt 파일을 살펴보면 아래와 같습니다. 처음 도형에 대한 좌표 리스트가 나오며.. 이 도형에 대한 속성값이 '|' 문자로 구분되어 출력됩니다. 빨간색으로 표시된 부분이 바로 도형에 대한 정보이며 파랑색으로 표시된 부분이 해당 도형의 속성에 대한 정보입니다.

사용자 삽입 이미지

끝으로... 이 프로그램은 듀라맵을 기반으로 수행됩니다. 실행을 위해 먼저 듀라맵을 설치(http://www.gisdeveloper.co.kr/notice/574)하셔야 합니다. 이 툴에 대한 소스 파일과 실행 파일을 모두 올려 드립니다. 개발이 가능하신 분이라면 자신이 원하는 텍스트 형식으로 저장할 수 있도록 수정이 가능할 것입니다..

Tag : ,
2010/08/11 11:26 2010/08/11 11:26
플래시 on 안드로이드
올해 3월쯤 발표된 동영상입니다. 일반 데스크탑용 플래시 10.1 버전을 안드로이드 2.1이 탑재된 넥서스 원에서 실행한 모습인데요.. 동영상을 보면.. 플래시의 속도가 불편할 정도로 크게 느리지 않게 구동되고 있습니다.. 끝 부분에서는 플래시의 3D 기능이 이용한 기능도 무리 없이 잘 구동되는 것을 볼 수 있습니다..

현재 개발하고 있는 플래시 기반, 정확히 말씀드리면 플렉스 기반의 지도 솔루션을 주변에 넥서스 원을 사용하고 있는 분을 통해 살펴보니... 마우스 휠 문제를 제외하고는 문제 없이 작동하는 것을 확인했답니다..

최근에 발표된 안드로이드 버전 2.2의 경우 속도가 최소 2배에서 4배까지 향상되었다고 하고.. 플래시의 속도 역시 이와 함께 향상되었다고 하니.. 향후 안드로이드 기반의 모바일 장치에서 플래시의 활용이 얼마나 크게 활성화 될지 기대가 됩니다..

게다가 모바일용 플래시가 아닌... 그냥 일반 데스크탑용 플래시를 그대로 사용할 수 있다는 것은.... 기존에 개발된 플래시용 컨텐츠를 그대로 사용할 수 있다는 것입니다.. 모바일에서의 플래시는 개발 플랫폼으로써 완벽한 형태를 이미 갖추고 있다고 봐도 틀린 말은 아닐 것같습니다..

하지만 이러한 생각에 2가지 걸리는 부분이 있습니다.. 첫째는 웹표준으로써 플래시 보다는 HTML 5가 대세가 될 것이라는 것 하나와... 둘째는 아이폰에서 플래시를 지원하지 않는다는 점입니다..

하지만 과연 HTML 5가 플래시가 가진 역동적인 그래픽 모션 기능과 다양한 이펙트 기능... 그리고 3D 기능을 제공할 수 있을지... 미지수입니다.. 고작 동영상을 위한 video 테그와 2D 그래픽을 위한 canvas 테그를 제공하는 정도이니 말입니다..
하지만 HTML 5가 시간이 흘러 개선되면 플래시가 지금 가지고 있는 역동적인 그래픽 애니메이션이나 그래픽 효과 그리고 3D 기능도 제공할수도 있겠지요.. 하지만 '표준'이라는 높은 산을 넘기에 많은 시간이 소요될 것이고... 또 그 긴 시간동안에 플래시 역시 발전할 것이며.. 또 IT 생태계에 다른 어떤 변화가 생길지 모르는 일입니다.. 또한... 과연 모바일에서 웹이라는 환경이 얼마나 크게 작용할 수 있을지....... 조심스럽게 의문이 들기도 합니다..

그리고 아이폰에서 플래시를 제공하지 않는다는 점에 대해서는 딱히 할말은 없습니다.. 모바일의 문을 활짝 열게 한 것이 바로 이 애플의 아이폰이였는데... 플래시는 '느려써 못 써먹겠다'으니.. 지원하지 않는다라고 했으니... 하지만.. 정말 느려서 못 써먹겠다는게 아니고.. 아이폰의 개발 플랫폼에 대한 강력한 경쟁자가 바로 플래시이기 때문에 밥 그릇이 작아지니 지원하지 못하겠다... 는 것도 이유 중에 하나가 아닐까... 하는 생각도 듭니다..

요즘 분위기를 보면... 모바일의 전성기는 아이폰이 아닌 안드로이드인것같다... 라는 생각이 듭니다.. 이미 판매량에서도 아이폰보다 안드로이드폰이 더 많으며... 처음 아이폰이 나왔을때의 그 첫감동은 이미 안드로이드 폰에서도 이젠.. 당연한 느낌으로 제공하고 있습니다.. 애플... 과거에도 그랫지만 '혁신'으로 시장을 여는 그 모습만큼은 정말 대단한 것 같습니다.. 뭐 여튼... 애플의 아이폰... '지가 아쉬우면 플래시 지원하겠죠'.

2010/08/10 15:02 2010/08/10 15:02
클라언트에 대한 서버측에서의 에러 응답
자바를 이용하여 웹서버를 내장하는 공간 데이터 서버를 개발하면서.. 클라이언트에서 잘못된 요청에 대해 서버가 가장 적절한 에러 코드를 클라이언트에게 전달하도록.. 다양한 에러 코드에 대해서 클라이언트에서 어떤 식으로 표시되는지를 확인해 보았습니다. 마이크로소프트의 IE 버전 8.0에서 확인을 하였으며... 다른 웹브라우저에서는 비슷하기는 하겠지만 다른 모습으로 표시될 수도 있겠습니다.

BAD_REQUEST Code
사용자 삽입 이미지


CONFLICT Code
사용자 삽입 이미지

FORBIDDEN Code
사용자 삽입 이미지

GONE Code
사용자 삽입 이미지

HTTP_VERSION_NOT_SUPPORTED Code
사용자 삽입 이미지

INTERNAL_SERVER_ERROR Code
사용자 삽입 이미지

METHOD_NOT_ALLOWED Code
사용자 삽입 이미지

MOVED_PERMANENTLY Code, MOVED_TEMPORARILY Code,
NO_CONTENT Code, SEE_OTHER Code

사용자 삽입 이미지

NOT_ACCEPTABLE Code
사용자 삽입 이미지

NOT_FOUND Code
사용자 삽입 이미지

NOT_IMPLEMENTED Code
사용자 삽입 이미지

REQUEST_TIMEOUT
사용자 삽입 이미지
 
이 외에도 다양한 코드가 존재하지만 IE에서는 처리하지 못해 클라이언트에게 적절한 처리를 하지 못하는 경우에 대한 코드는 제외하였습니다.
BLOG main image
 Notice
DuraMap-Xr 소개 및 다운로드
[오픈소스] SimpleSHP v0.1
FingerEyes-Xr 소개 및 다운로드
OpenGL Tutorials
 Category
전체 (531)
GIS 개발 (146)
프로그래밍 (233)
스치는 생각들 (129)
번역 또는 집필 (3)
 TAGS
GIS Xr OpenGL Shader FingerEyes BlackPoint Algorithm Java Map Engine WPF
 Calendar
«   2010/08   »
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 30 31        
 Recent Entries
[FingerEyes] 지오메트리...
[FingerEyes] Geometry로...
[FingerEyes] FID 리스트...
[FingerEyes] UPDATE, INS...
영화, "부러진 화살"
 Recent Comments
소스코드 그대로 써보아도...
인현환 - 13:50
글의 예제 코드의 숫자들...
김형준 - 12:57
안녕하세요. 포스트 잘 보...
인현환 - 11:15
메일로 답변드렸습니다....
김형준 - 02/01
txt파일을 엑셀로 변환하...
최상준 - 02/01
코봉히님두 새해 복 많이...
김형준 - 01/25
아 너무 감사합니다. 새해...
코봉히 - 01/23
wkb는 http://www.gisdeve...
김형준(Dip2K) - 01/23
wkb의 구조가 shp파일의...
코봉히 - 01/20
wkb는 바이너리인지라.....
김형준(Dip2K) - 01/20
 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 : 929882
Today : 533
Yesterday : 511
태터툴즈 배너
rss