geotagging

Google Location Panaramio

Небольшая заметка о том, как используя аккаунт Google, смартфон с установленной программой Google Latitude и цифровую камеру облегчить геотаггинг фотографий на сервисе Panoramio.

Заметку решено завернуть в кат, так как получился почти скринкаст.

Читать полностью

Старый сюжет НТВ о геоблогинге в целом и в частности об отдельных его тенденциях.

На днях один знакомый попросил привязать ему фотографии к местности, передав мне собственно сами фотографии и файл путевой точки в формате lmx(Nokia landmark file). Фотографий было окола ста, поэтому делать все вручную меня не вдохновляло. Тогда я написал небольшой скрипт на php.

Сразу хочу предупредить: особо программировать я не умею. Когда то давно писал модули для MapInfo в программе MapBasic, но это не то.

Используя PHP 5.2.6 и библиотеку PEL: PHP Exif Library сделал следующее:

  1. <?php
  2. require_once ("PelJpeg.php");
  3. require_once ("PelIfd.php");
  4. $res = simplexml_load_file($argv[1]);
  5. foreach ($res->xpath('//lm:latitude') as $lat);
  6. foreach ($res->xpath('//lm:longitude') as $lon);
  7. foreach ($res->xpath('//lm:altitude') as $alt);
  8. $lat_deg=(int)$lat;
  9. $lat_min=((float)$lat-$lat_deg)*60;
  10. $lat_min=(int)$lat_min;
  11. $lat_sec=(((float)$lat-$lat_deg)*60-$lat_min)*60;
  12. $lat_sec=number_format($lat_sec, 2);
  13. $lon_deg=(int)$lon;
  14. $lon_min=((float)$lon-$lon_deg)*60;
  15. $lon_min=(int)$lon_min;
  16. $lon_sec=(((float)$lon-$lon_deg)*60-$lon_min)*60;
  17. $lon_sec=number_format($lon_sec, 2);
  18. $gps = new PelIfd(PelIfd::GPS);
  19. $latitude = new PelEntryRational(0x0002,array($lat_deg,1),array($lat_min,1),array($lat_sec,100));
  20. $longitude = new PelEntryRational(0x0004,array($lon_deg,1),array($lon_min,1),array($lon_sec,100));
  21. $altitude = new PelEntryRational(0x0006,array($alt,1));
  22. foreach (glob("*.jpg") as $filename)
  23. {
  24.     $jpeg = new PelJpeg($filename);
  25.     $exif = $jpeg->GetExif();
  26.     $tiff = $exif->getTiff();
  27.     $ifd = $tiff->getIfd();
  28.     if($ifd->getSubIfd(PelIfd::GPS)==null)
  29.     {
  30.         $ifd->addSubIfd($gps);
  31.         $gps->addEntry($latitude);
  32.           $gps->addEntry($longitude);
  33.          $gps->addEntry($altitude);
  34.          file_put_contents('geo-' . $filename, $jpeg->getBytes());
  35.     }
  36. }
  37. ?>

Теперь мне достаточно поместить все изменяемые файлы в одну директорию. Туда же положить свой скрипт и файл с путевой точкой. Набрать в командной строке php my.php файл_путевой_точки и на выходе я получу свои фотографии, имеющие геотаг.

Так как это мой первый опыт программирования(на php), да и сделан он был на скорую руку, то он не без недостатков. Так он не проверяет передан ли файл путевой точки в программу. Строчки с 8-17 преобразуют координаты из формата ГГГ,ГГГГГ° в формат ГГГ°ММ'СС,СС". Если Вам известны координаты, то строчки 4-17 можно удалить. А в строчках 19-20 подставить нужные вам значения. Так же скрипт добавляет геотаг лишь тем файлам, в которых его нет. Остальные файлы он пропускает. В имена новых изображений добавляется приставка 'geo'.

Геотаггинг(“geotagging”, от греч. "geo" - Земля, англ. "tag" – метка) - это процесс добавления географических идентификаторов в метаданные различных сред, таких как фотографии, видео, веб-сайты. Эти данные, как правило, включают в себя координаты широты и долготы, но так же могут содержать сведения о высоте, точности данных, азимут, и название мест.

Чтобы далеко не ходить за примером, можно вернуться к программе Nokia Friend View, которая записывала текущие координаты(определенные вручную или с помощью GPS) в метаданные вашего поста.

Самое популярное применение геотаггинга - это фотографии. Имея телефон с GPS(встроенным или внешним) легко сделать фотоальбом своих путешествий, красивого места и.т.п.

Меня удивляло, почему в стандартных настройках некоторых телефонов нет возможности геотаггинга. Вроде, как и камера в e71 есть, и GPS. Можно было делать все топорно: сфотографировать что-либо, потом, не меняя своего местоположения, добавить новый ориентир. Потом прийти домой, скачать PhotoInfoEx или ExifTool и ручками вбивать нужные нам координаты.

Читать полностью

Яндекс.Метрика