본문 바로가기
나의 정보/정보

블로그를 이용한 지오태깅, 작업과정

by 상오기™ 2009. 7. 24.
블로그를 이용한 지오태깅을 작업하면서 남기는 포스트 입니다.

현재는 공개 상태이며 마무리가 되면 발행을 할 생각 입니다.

관련 글
2009/07/23 - 블로그를 이용한 지오태깅, 구글맵 + GPS Logger + 사진

적용 블로그
: 티스토리, 텍스트큐브닷컴

텍스트큐브닷컴 http://blog.gpson.kr/2

마인드맵으로 정리한 개념도

1. 사진과 설명 반환하기

위의 작업순서중 2번째 과정 입니다.

포스트내에 있는 사진과 설명을 뽑아오기 위해 스누피 클래스로 해당 포스트를 읽어온후 정규식을 이용해서 img 태그와 설명을 읽어 옵니다.


heartonbit님께서 티스토리의 이미지와 설명을 뽑아오는 정규식에 대한 글을 올린게 있어 이것을 참고하여 잘 모르는 정규식 부분을 해결 했습니다.


티스토리 http://photo.sangogi.com/1



텍스트큐브닷컴 http://blog.gpson.kr/2


2. 사진에서 EXIF 읽기

위의 작업순서중 3번째 과정에 필요한 부분 입니다.

말티재

말티재

갈목재

갈목재

갈목재

궁촌재


지오태깅한 테스트용 이미지

지오태깅한 테스트용 이미지


위의 이미지를 스누피 클래스를 이용하여 파일로 저장을 한후(위에서 문제점으로 지적했듯이 서버의 위치가 다르므로 저장을 해야 함 ㅡㅡ) PHP에서 제공하는 exif_read_data()를 이용하여 EXIF를 읽어오면 아래와 같이 나옵니다.

FILE.FileName: temp.jpg
FILE.FileDateTime: 1248368430
FILE.FileSize: 176059
FILE.FileType: 2
FILE.MimeType: image/jpeg
FILE.SectionsFound: ANY_TAG, IFD0, EXIF, GPS
COMPUTED.html: width="648" height="488"
COMPUTED.Height: 488
COMPUTED.Width: 648
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 0
IFD0.Make: SAMSUNG
IFD0.Model: SAMSUNG AU75C
IFD0.XResolution: 72/1
IFD0.YResolution: 72/1
IFD0.ResolutionUnit: 2
IFD0.Software: PhotoScape
IFD0.YCbCrPositioning: 1
IFD0.Exif_IFD_Pointer: 252
IFD0.GPS_IFD_Pointer: 426
IFD0.CustomRendered: 0
IFD0.ExposureMode: 0
IFD0.WhiteBalance: 0
IFD0.DigitalZoomRatio: 8192/4096
IFD0.SceneCaptureType: 0
IFD0.SubjectDistanceRange: 0
EXIF.ExposureTime: 1/21
EXIF.ExifVersion: 0220
EXIF.DateTimeOriginal: 2009:04:27 12:11:38
EXIF.DateTimeDigitized: 2009:04:27 12:11:38
EXIF.ComponentsConfiguration:
EXIF.Flash: 0
EXIF.FlashPixVersion: 0100
EXIF.ColorSpace: 1
EXIF.ExifImageWidth: 648
EXIF.ExifImageLength: 488
GPS.GPSVersion:
GPS.GPSLatitudeRef: N
GPS.GPSLatitude:
Array
(
    [0] => 36/1
    [1] => 28/1
    [2] => 4310/100
)
GPS.GPSLongitudeRef: E
GPS.GPSLongitude:
Array
(
    [0] => 127/1
    [1] => 38/1
    [2] => 3349/100
)
GPS.GPSAltitudeRef: 
GPS.GPSAltitude: 330/1

테스트한 이미지는 이미 지오태깅을 하였기 때문에 GPS 태그를 읽어서 위치 정보로 활용할 수 있습니다.

Irfanview을 이용하여 EXIF 확인

피카사웹에서 확인한 이 이미지의 위치는 36.478639° N127.642636° E 로 나옵니다.

GPS 로그 파일에서 사진이 찍힌 시간과 비교하여 매핑한 좌표는 아래와 같습니다.

<trkpt lat="36.4787483215332" lon="127.642646789551"><ele>332.792327880859</ele>
<time>2009-04-27T03:11:20Z</time></trkpt>
<trkpt lat="36.478588104248" lon="127.642631530762"><ele>329.795104980469</ele>
<time>2009-04-27T03:11:47Z</time></trkpt> => GPS 시간에서 +9를 해줘야 함
<trkpt lat="36.478588104248" lon="127.642631530762"><ele>329.795104980469</ele>
<time>2009-04-27T03:11:48Z</time></trkpt>

사진이 찍힌 시간이 2009:04:27 12:11:38 이므로  GPS 로그 파일에서 가장 근접한 시간에 기록된 좌표 정보가 사진을 찍은 좌표로 인식이 됩니다.


3. 실제 작업중

포스트 주소와 로그 파일 업로드하는 화면

포스트 주소와 로그 파일 업로드하는 화면


로그 파일 업/다운을 위해 찾아보니 좋은 소스를 발견하여 작업 시간이 줄어 들었습니다.

NFUpload


특징) 

 -플래시가 동작하는 대부분의 웹브라우저에 지원됨(인터넷 익스플로어, 파이어폭스 등) 
 -별도의 ActiveX 설치가 필요하지 않으므로 접근성이 뛰어남 

 기능) 

 -HTTP 방식 업로드 
 -멀티파일 업로드 기능제공 
 -파일형식 필터기능제공 
  (확장자 지정업로드, 특정 확장자 업로드 차단기능  .ASP  , ..PHP차단등) 
 -업로드폼 크기 지정기능 
 -파일갯수 및 업로드 용량제한 기능 제공 
 -ASP, 닷넷, PHP 예제파일 제공 

 -Flasy Player 10 지원

위에서 전달받은 데이터로 작업중인 화면

위에서 전달받은 데이터로 작업중인 화면


스킨마다 태그가 제각각이라 이미지와 설명을 뽑아 내는게 아주 XX 같네요 ㅡㅡ
- 공식 스킨 가이드는 저 멀리~~~~

가능하면 본문내의 태그만 읽어 들일까 했는데 그냥 전체를 읽어서 처리하는게 노가다를 피하는 방법이 되려나? ^^;;

베타 버전으로 일단은 마무리 하였습니다 ^^

2009/07/25 - 블로그를 이용한 지오태깅 서비스, 지도 + 사진 + GPS 로거


이 글은 '상오기 : 자전거 여행과 GPS~!' 의 "상오기™ (sangogi@gmai.com)" 이 작성 하였습니다.
"상업적 이용 금지, 원본 출처(링크 포함) 및 저작자 표시, 내용 변경 금지"의 조건으로 자유롭게 사용하실 수 있으며 저작권에 대한 자세한 내용은 "저작권 안내를 참고 하시기 바랍니다.