태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

블로그

(개인적으로 한글은 영어-정확히 말하자면 미국어-의 알파벳 보다 '월등히' 우월 하다고 생각하기 때문에, 게다가 이렇게 쓰는게 당연하기 때문에 한글로 우선 한문단을 적고 영어로 '번역'을 하였습니다. 영문과 한글 문장 사이에 의미상 차이가 있을 수 있으며, 저작자의 의도는 한글 문장에 우선합니다.)
(This posting is translated to English after written in Korean. Writer's can be changed, modified incidentally. In that kind of situation, Korean Sentences has priority to be real meaning.)


콩나물 맵이 현재까지는 국내에서밖에 서비스를 하고 있지 않기 때문에 진욱아 야식사와 팀에서는 구글맵을 이용하여 전세계 서비스를 하기로 결정하였습니다.

Unfortunately, Congnamul map - which we use in our project, MAPLOG - is cover only South Korea region. So Jinuka Yasixawa decided to use Google Map to cover all over the world.


API를 사용할수도 있었지만, 이전에 했던 작업과 일관성을 유지하기 위해서 구글맵을 조각별로 받아오기로 했습니다. (첨부한 main.js 파일을 뜯어보시면 여러분들도 분석해 보실 수 가 있습니다.)

API could be used in MapLog but we use try to use 'piece of Google Map Image', just same as Congnamul map. (Also you can do it, if you look up attached file "main.js")



구글맵은 mt0 ~ mt3 까지의 네개의 다른 서버를 사용합니다.
Google use four image servers between mt0 to mt3.

http://mt0.google.com/
http://mt1.google.com/
http://mt2.google.com/
http://mt3.google.com/




http://mt0.google.com/mt?n=404&v=w2.66&x=5&y=11&zoom=12&s=Galileo

x, y에 해당하는 숫자들은 모두 zoom과 관련이 있습니다. 이것은 스크립트 파일에 정리가 되어있을텐데, 도저히 분석할 방법이 없어서 포기하였으니 혹시 아시는 분은 리플로 달아주시면 제가 아침에 던킨을 쏘도록 하겠습니다 -ㅅ- ;;;;;;

those x, y numbers are concerned with zoom. It is 'may be' in attached Script file... I gave up :(




그리고 맨 마지막에 갈릴레오 부분에 해당하는 식은 아래와 같습니다.
And "s=Galileo" part is same as below


e = (x*3 + y)%8
"Galileo".substr(0 , e);


여러분들도 이렇게 하시면 구글맵의 부분 조각들을 쉽게! 사용하실수 잇을것이라고
생각합니다......아마도요 ㅋㅋㅋㅋㅋㅋ
그럼 저는 여기까지!^^ 오늘도 아무 도움 안되는 [나름 테크노트]를 읽어주셔서 감사합니다.
Thank you.

이올린에 북마크하기(0) 이올린에 추천하기(0)

트랙백 주소 :: http://gi.daum.net/trackback/48 관련글 쓰기

댓글을 달아 주세요

  1. 두루미 2008/02/09 20:01  댓글주소  수정/삭제  댓글쓰기

    팀 이름 다시봐도 안습이네...

'맵로그'를 만드는 중에 제가 맡은 부분인 GPS 경로 Parsing을 하다보니

XML을 쓸 일이 많았습니다.

Maplog ver 0.2.0까지는 그냥 while문을 돌면서

"줄파싱" 을 했었는데 -_-;;;;;

(이것 참 부끄러워서 줄파싱 소스는 공개할 수 가 없습니다 ㅠ_ㅠ)

우선 첫째로는 XML을 쓰면서 줄파싱 + Substr 콤보를 쓰면 안된다는 양심의 호소-_-

그리고 비록 인턴 나부랭이 이지만

'나름 개발자' (뭐 저야 개발새발할때의 그 개발자-_-이지만요)로서의 자존심? 가오? 간지? +_+

그래서 Xstream을 써보기로 했습니다 +_+

사용자 삽입 이미지

http://xstream.codehaus.org/index.html


두둥!!!

xstream 홈페이지에 가면 2분 튜토리얼 이라는게 있는데

엄청 잘 써놨습니다. 그러나, 제가 필요한 방법으로는

쓸 수가 없다는 단점이 ㅠ_ㅠ


그럼 제가 썼던 방법대로 설명을 하도록 하겠습니다.

우선 타겟이 될 XML 형식을 분석해야 하는데요

아래와 같은 파일을 읽어와서 파싱을 해보도록 하겠습니다.
사용자 삽입 이미지

장담은 못하지만 클릭하면 크게 나올수도 있습니다.


우선 가장 먼저 할 일은 위의 XML구조대로 클래스를 만드는 것입니다.

원래는 각 노드별로 클래스를 만들어야 되는데

(대충 봐도 위의 파일을 파싱하려면 클래스만 대여섯개 만들어야겠죠?)

클래스가 너무 많아지면 복잡해지니까..

아래와 같은 꽁수를 씁니다~

사용자 삽입 이미지

바로 inner class를 사용하는 것인데요. 이렇게 하면 하나의 XML파일당 하나의 클래스만

만들면 되니까 소스가 깔끔해지겠죠?+_+

Tutorial에는 getter와 setter를 쓸 필요도 없고 private이던 public이던

아무 상관이 없다고 하지만 그래도 예의상 적어줬습니다! >ㅇ<

---------------------------------

그런데 위에 빨간색 XML을 다시 살펴보면

trkseg 속의 "trkpt" (트랙 포인트)는 여러번 반복이 됩니다.

(이부분이 xstream의 웹페이지의 튜토리얼에 잘 나와있지 않습니다 ㅠ_ㅠ)


private List<Trkpt> trkseg = new ArrayList<Trkpt>();



이럴때는 위에서 보이는 것처럼 리스트를 쓰면 되는데

중요한 점은 new ArrayList 뒤에 <Trkpt>와 마찬가지로 형식을 지정해 줘야 한다는점!! >ㅇ<

(이게 안나와 있어서 한참을 고생했습니다 ㅠㅠ)

이제는 위에서 설정한 클래스를 어떻게 쓰는지 알아봅시다!!!  ;ㅇ;

사용자 삽입 이미지

파일을 읽어와서... 저렇게 쓰면 되요 =_= 간단하죠??

attribute로 되어있는 "lat" 과 "lon"은 useAttributeFor 라는 메소드를 사용하면 되구요

(밑에있는 registerConverter는 신경스지 않아도 됩니다.)


그리고 바로

xstream.fromXML(fis);

(fis 는 file input stream의 준말입죠^^) 를 사용하시면 

Gpx 형식의 xml이 툭 튀어나와서 myGpx속에 담기게 됩니다 +_+

생각보다 쉽죠?+_+

그럼 다음시간에는 XStream을 이용한 XML 형식변환을 해보도록 하겠습니다 !!
^^
이올린에 북마크하기(0) 이올린에 추천하기(0)

트랙백 주소 :: http://gi.daum.net/trackback/47 관련글 쓰기

댓글을 달아 주세요

  1. 전찐후후 2008/02/06 14:07  댓글주소  수정/삭제  댓글쓰기

    xtream 이라는 라이브러리가 있다는 것을 NG팀이 알려주었답니다. ^ㅁ^ 여러모로 고마워요 ^ㅁ^