블로그를 이용한 지오태깅을 작업하면서 남기는 포스트 입니다.
현재는 공개 상태이며 마무리가 되면 발행을 할 생각 입니다.
사진이 찍힌 시간이 2009:04:27 12:11:38 이므로 GPS 로그 파일에서 가장 근접한 시간에 기록된 좌표 정보가 사진을 찍은 좌표로 인식이 됩니다.
관련 글
2009/07/23 - 블로그를 이용한 지오태깅, 구글맵 + GPS Logger + 사진
적용 블로그 : 티스토리, 텍스트큐브닷컴
2009/07/23 - 블로그를 이용한 지오태깅, 구글맵 + GPS Logger + 사진
적용 블로그 : 티스토리, 텍스트큐브닷컴
티스토리 : http://photo.sangogi.com/1
텍스트큐브닷컴 : http://blog.gpson.kr/2
1. 사진과 설명 반환하기
위의 작업순서중 2번째 과정 입니다.
포스트내에 있는 사진과 설명을 뽑아오기 위해 스누피 클래스로 해당 포스트를 읽어온후 정규식을 이용해서 img 태그와 설명을 읽어 옵니다.
관련 글
2009/07/13 - [PHP] Snoopy Class, 무엇이든 읽어오는 강력한 소켓 클래스
ImageStock (Textcube Plugin) => 이미지와 설명을 뽑아오는 정규식 참고
ImageStock (Textcube Plugin) => 이미지와 설명을 뽑아오는 정규식 참고
티스토리 : 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 태그를 읽어서 위치 정보로 활용할 수 있습니다.
피카사웹에서 확인한 이 이미지의 위치는 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>
3. 실제 작업중
포스트 주소와 로그 파일 업로드하는 화면
로그 파일 업/다운을 위해 찾아보니 좋은 소스를 발견하여 작업 시간이 줄어 들었습니다.
NFUpload
특징)
-플래시가 동작하는 대부분의 웹브라우저에 지원됨(인터넷 익스플로어, 파이어폭스 등)
-별도의 ActiveX 설치가 필요하지 않으므로 접근성이 뛰어남
기능)
-HTTP 방식 업로드
-멀티파일 업로드 기능제공
-파일형식 필터기능제공
(확장자 지정업로드, 특정 확장자 업로드 차단기능 .ASP , ..PHP차단등)
-업로드폼 크기 지정기능
-파일갯수 및 업로드 용량제한 기능 제공
-ASP, 닷넷, PHP 예제파일 제공
-Flasy Player 10 지원
위에서 전달받은 데이터로 작업중인 화면
스킨마다 태그가 제각각이라 이미지와 설명을 뽑아 내는게 아주 XX 같네요 ㅡㅡ
- 공식 스킨 가이드는 저 멀리~~~~
가능하면 본문내의 태그만 읽어 들일까 했는데 그냥 전체를 읽어서 처리하는게 노가다를 피하는 방법이 되려나? ^^;;
베타 버전으로 일단은 마무리 하였습니다 ^^
2009/07/25 - 블로그를 이용한 지오태깅 서비스, 지도 + 사진 + GPS 로거
이 글은 '상오기 : 자전거 여행과 GPS~!' 의 "상오기™ (sangogi@gmai.com)" 이 작성 하였습니다.
"상업적 이용 금지, 원본 출처(링크 포함) 및 저작자 표시, 내용 변경 금지"의 조건으로 자유롭게 사용하실 수 있으며 저작권에 대한 자세한 내용은 "저작권 안내" 를 참고 하시기 바랍니다.