wtorek, 30 sierpnia 2011

Zapis ścieżki, czyli śledzenie położenia

Jakiś czas temu zastanawiałem się (na Google+), jak rozwiązać problem wzbogacenia zdjęć wykonywanych aparatem bez GPS o geotagi. Geotag to - w skrócie - znacznik położenia (na Ziemi ;-)), w którym to położeniu znajdował się aparat podczas robienia danej fotografii, zapisany w obszarze metadanych EXIF pliku graficznego (u mnie JPEG).
Pierwsze rozwiązanie to oczywiście zakup odpowiedniego sprzętu. Drogo (względnie). Drugie rozwiązanie, to rejestrowanie (za pomocą w miarę specjalistycznego sprzętu) zmian naszego położenia podczas wykonywania zdjęć, a później, z wykorzystaniem komputera i odpowiedniego oprogramowania, zestawienie zapisanej ścieżki z fotografiami. Warunkiem koniecznym jest, aby w aparacie fotograficznym były ustawione aktualne data i czas.
Mając zapisaną ścieżkę (kolejne sekwencje zawierające długość i szerokość geograficzną, czas rejestracji położenia i ewentualnie wysokość n. p. m.) - najlepiej w jednym z uznanych standardów (formatów) - można wykorzystać np. GPS Photo Correlate (strona projektu), żeby osiągnąć założony na początku cel, czyli otagować zdjęcia.
Najpopularniejszym urządzeniem zawierającym moduł GPS jest oczywiście telefon komórkowy (lub lepiej: smartphone).
Istnieją programy (darmowe), które pozwalają na śledzenie położenia za pomocą telefonicznego GPS-a - np. Sports Tracker (http://www.sports-tracker.com/), jednak na tym blogu nie będę pisał, jak z nich korzystać ;-) Przedstawię za to bardzo prosty program (skrypt) w Pythonie (dla systemów Symbian S60v3 i nowszych), który zapisuje ową ścieżkę.



Format pliku wynikowego nie jest zgodny z żadnym standardem, jednak nic nie stoi na przeszkodzie, żeby przerobić prezentowany skrypt w sposób umożliwiający rejestrację śladu w formacie pliku CSV (akceptowalnego przez GPS Photo Correlate, a jeśli nie, to łatwego do konwersji np. do formatu GPX za pomocą programu gpsbabel).

Plik skryptu kopiujemy do naszego telefonu i uruchamiamy za pomocą konsoli Pythona.

Rzut oka na konsolę podczas działania programu (nic ciekawego...):


I zrzut ekranu pokazujący, że procesor podczas śledzenia naszego położenia praktycznie się nudzi:


Wkrótce postaram się zaprezentować skrypt, który wygeneruje plik w formacie CSV zrozumiałym dla programów przetwarzających dane z GPS.

środa, 10 sierpnia 2011

Parę linków dla webdesignerów

Projektowanie stron WWW tylko pozornie nie ma nic wspólnego z programowaniem - przekonał się o tym już chyba każdy, kto chciał dodać odrobinę życia do tworzonego przez siebie serwisu (i nie mam tu na myśli animowanego GIFa). Czasem po prostu wystarczy wkleić lub zalinkować skrypt, potem odpowiednio wywołać funkje jako akcje, czasem trzeba napisać coś od początku. W każdym razie przedstawiam kilka linków do artykułów krążących wokół ciągle nowego standardu - HTML5.

The Most Important Parts of HTML5
On the Cutting Edge with Adobe’s Edge
HTML5 or Silverlight?
HTML5 Drag and Drop in IE10 PPB2 (jako ciekawostka)

HTML5 ma umożliwić nam m. in. wyeliminowanie nadmiaru kodu wykonywanego po stronie klienta (oczywiście jesli nie jest to kod związany z tym, co nazywaliśmy swego czasu AJAX) - i z tego, co można zaobserwować, sprawdza się w tej dziedzinie.