Georeferencovaná fotografia s pomocou freemap.sk na OS Android

Bakalárska práca na FEI TUKE

Samotny Google uz ma funkcie na svojich mobiloch ako geotagging, no nieje to este velmi rozsirene, a myslim ze to nebude ani opensource ani presne take ake navrhujem ja.

Chcel by som vytvorit aplikaciu aj na Android, aj na PC.

Na Androide by to bola aplikacia ktora vyuziva GPS, OpenStreetMap, digitalny kompas, a samozrejme fotak. Pomocou GPSka a digitalneho kompasu by sa na mape v real-time vykreslovala pozicia fotografa a smer ktorym mieri fotakom. Tiez by to zobrazilo na mape pomocou nejakeho trojuholnika co vidi a zhruba co bude odfotene. Po odfoteni sa ulozi na pamatovu kartu samotna fotografia, a taktiez subor ktory bude obsahovat gps suradnice a smer fotenia, pripadne viac.

Okrem tejto hlavnej funkcie by som do nej chcel pridat aj niektore funkcie ktore poskytuje freemap, ako napriklad zobrazenie geocaching lokacii, pripadne turistickych ciest a podobne atrakcie v lokalite.

PC verzia bude prehliadac odfotenych fotiek, a bude zobrazovat fotku, a vsetky prislusne data ktore k nej boli pripojene pocas fotenia, pripadne celu freemap.sk stranku vedla fotky s lokaciou.

Cize zhrnutie:

Android App:

PC App:

Implementacia

S Androidom mam skusenosti, no niesom si isty ci by som zvladom z nuly napisat kompletny prehliadac OpenStreetMap, a tak som hladal nejaky opensource prehliadac. Jeden som nasiel na stranke www.anddev.org anddev.org, ktory bol vytvoreny taktiez studentom, a ktory by sa dal rozsirit o funkcie ktore som spominal. Nasiel som cely zoznam aplikacii ktore vyuzivaju openstreetmap na Androide tu, no v tomto si necham poradit (vlastne vo vsetkom si necham poradit) ze ako mam postupovat v tomto smere.

Ako som spominal, mam predstavu ako zaimplementovat do toho freemap.sk, no urcite by sa to dalo rozsirit s Vasou pomocou.

Prajem príjemné sviatky,
Pavol Bán


Server časť:
má to byť opensource aplikácia, ktorá licencia ?
svn môže byť tu na serveri
portovateľnosť PC aplikácie ? aspoň linux pre mňa :)
tá android časť: nejak udržať závislosti tak aby to mohlo ísť bez väčších problémov na maemo, openmoko a iné linuxové telefóny (ak to ide)

Prepacte oneskorenie.. skuskove je v plnom prude.
Cize to moze byt GPLicense. - ok
Portovatelnost: V pythone som myslim ze ani nikdy nerobil, no taktiez je mozne to spravit v PERLe, kazdopadne to bude jedzno z tychto dvoch. - ok
A ta podkapitola teda tiez bude :) - ok

aké sú deadliny?

Opat zdravim,
popracoval som na mobilnej verzii a takto zatial vyzera..
texttext
texttext
texttext
text

Mobilna cast ma uz vsetky zakladne funcie:
- zobrazovanie map, kompasu
- georeferencovana fotografia s ulozenim polohy a orientacie do samostatneho suboru.. (na pocudovanie Android nepodporuje zapis exif dat, musel som serializovat do suboru)
- zobrazenie fotiek a lokacie v galerii
- otvorenie fotiek vo vstavanej galerii operacneho systemu (cize fullscreen + zoom)
- premenovanie, mazanie fotiek

Chyba tomu uz len pripadne upload fotiek, ktory bud zabudujem do mobilnej aplikacie alebo do pocitacovej verzie.

Co sa tyka pocitacovej verzie, neviem ako zacat. Pisat od nicoho program v jazyku v ktorom velmi nemam skusenosti by bolo dost zdlhave, ale keby ste mi vedeli poradit nejaky open-source prehliadac map ktory funguje na linuxe a vo windowse tak ten by som uz mohol hociak upravit.. kazdopadne s tym mam zatial najvacsi problem.

Dalsi problem je ze data o lokacii odfotenia fotografie sa neukladaju na do exif dat, ale ku kazdej fotke je subor s rovnakym menom a koncovkou .geo, v ktorej su serializovane vsetky potrebne data. Pri uploadovani by sa to mohlo tak vyriesit ze sa uploadne ciste .jpg + suradnice polohy fotenia, a by to bolo zhruba vyriesene.

Zostava sa este aj dohodnut ze ako bude fungovat upload..

pekné...
server (zobrazovacia) časť môže byť GeoMenu, treba len pekný vizuál
už stačí len api na upload, nejaké http put ? http://php.net/manual/en/features.file-upload.put-method.php , potom už len uloženie do mysql a na disk


Mobilna cast je vlastne hotova, a teraz dokoncujem pocitacovu cast. Mobilnu cast by som vam mohol zaslat akurat je tam stale neisty ten upload. Sucastne vie uploadovat fotky bez problemu, len tam treba natvrdo napisat do kodu ze kde to ma uploadovat, cize to by som potreboval od vas pomoc. Teraz vyuzivam tento php kod:

<?php 
// Where the file is going to be placed 
$target_path = "pictures/"; 

/* Add the original filename to our target path.  
Result is "uploads/filename.extension" */ 
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
	echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
	" has been uploaded"; 
} else{ 
	echo "There was an error uploading the file, please try again!"; 
} 

/* meno fotografie, a suradnice ziskame pomocou tychto prikazov: $_GET[meno] , $_GET[latitude] , $_GET[longitude] */
/* posuvam ich ako parametre v odkaze na toto phpcko. */
?>


najlepsie by bolo keby ste vy pridali kod ktory to posunie do vasej databazy.. ja zial v phpcku neviem vobec robit. potom mozete poslat adresu, a ja ju dodam do programu, alebo pridam moznost zadania adresy rucne.

Ok.. prave som dokoncil desktopovu aplikaciu, nakoniec som ju napisal v jave kvoli swingu, cize to pobezi aj na linux/win. Uz zostava len ten upload a je to hotove.

upload bude, kuk ApiGallery, ale este nie je hotovy (ale coskoro bude)
ake username na SVN




Ok, tak uz som si to obhajil a davam odkazy na plne funkcne programy/zdrojaky:

Instalacka pre Android
Zdrojaky pre Android aplikaciu - v eclipse, pouzivam v nej jeden komponent pre stahovanie a zobrazovanie map z OpenStreetMap serverov, je pod CC 3.0 licenciou.

Spustitelna aplikacia pre desktop
Zdrojaky pre desktopovu aplikaciu - v netbeanse, pomocou swing, pouzivam v nej MapPanel komponent z tejto stranky, pod LGPL licenciou, cize tieto aplikacie budu zrejme pod rovnakymi licenciami.

Zatial som zrusil moznost uploadu (vykomentoval jeden riadok).. a SVN mozem vytvorit dnes alebo zajtra na svojej stranke.

--
SkolskaPraca
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki