Eternity geoTagger
Current Version: 0.92 (10/23/09)If anyone is interested, I have started tinkering with writing some J2ME. I'm still horribly new at it, but I wrote a little app that can do a form of geotagging on our phone. In summary, geoTagger runs in the background watching the Pictures folder on your SD card. When a new picture shows up, it gets the gps coordinates from the internal GPS and creates an XMP "Sidecar" file in Pictures/xmp on your SD card.
If you have a
Flickr acct, this app can also upload images directly to Flickr and attach the location information.
An example of a geotagged photo that I took using this app on my Eternity can be found here:
http://www.flickr.com/photos/drunnells/4032544655/If you look on the right side of the Flickr page next to the image you will see "Taken in Webster, New York (map)". If you click on "map" you will see my back yard in yahoo maps.. the dot is pretty darn close to exactly where the photo was taken.
INSTALL
----------
Copy the attached .JAD and .JAR files to your phone using the methods described elsewhere on this site. If you are installing OTA you will need to "goatbreak" after installation to use the internal GPS.
USAGE
--------
The interface is still pretty clunky, but hopefully intuitive enough to get by. If you are only interested in the XMP files all you need to do is start the app and let it run in the back ground when you expect to be taking pictures. When the app first starts it will attempt to get a GPS signal and will notify you on the main "Logger" screen as soon as it receives the first signal. Once geoTagger is receiving GPS signals you can minimize it by clicking the "Min" button on the lower left and start the camera whenever you are ready. As you take pictures XMP files will be placed into the Pictures/Xmp directory on your SD card. Be sure that your camera is configured to store pictures to the SD card, NOT the internal memory, otherwise geoTagger will be unable to find new images.
If you plan on uploading to Flickr from geoTagger you will need to authorize the app on flickr:
http://www.flickr.com/auth-72157622537493140After logging into your Flickr account at the above URL you will be given a nine digit authorization code. After you receive your authorization code start the geoTagging app and click the ImgMgr button, go to Flickr Settings->Authorize and enter the full code INCLUDING THE DASHES. After you enter the code you can verify that geoTagger will be able to communicate with Flickr by going to Flickr Settings->Verify Auth. Once Flickr is configured you will be able to go to ImgMgr and clicking Flickr Upload. The Flickr Upload screen will list all the images that have an associated sidecar file, click on one of them and it will be uploaded to your Flickr acct with the location information. BEFORE you upload any geotagged images to Flickr you will need to set your default privacy setting for geotagged images:
http://www.flickr.com/account/geo/privacy/ADDITIONAL INFORMATION
----------------------------------
- Originally I had planned on writing the geotag metadata to the EXIF in the original .jpg file, however editing existing exif inside of a jpg is no easy task, all parts of the jpg refer to the other parts by their offset, simply inserting new metadata would have required a deeper understanding of exif and storing the entire jpg in memory, rearranging it, and then writing the file again. As far as i can tell, there are currently no existing prewritten exif libs available for j2me.
- JSR 234 on our phone does have a setMetadata() method for useImageFormatControl, BUT whenever I tried to use it on the photos on my phone I got an exception telling me that setting meta data was not allowed.
- JSR 75 is used to write to files on the SD card.
- This app only uses JSR 179 for communicating with the internal gps, no bluetooth at this time.
- Ths app runs a loop that checks the dates of all the files in file:///Mmc/Pictures/, if one is more recent than the last run (every 15 seconds) I pull the current gps coordinates and generate a xmp file with the same name as the image, just .xmp instead of .jpg in the file:///Mmc/Pictures/xmp directory, creating the dir if it doesn't already exist.
- XMP is an emerging standard to store metadata for any type of file, there is likely a tool for your OS that will allow you to merge the XMP data into the .jpg for applications that do not understand XMP sidecar files, I personally use exiftool on Linux with a command line like:
exiftool -tagsFromFile Photo005.xmp Photo005.jpg
KNOWN BUGS
------------------
* I suspect that auto-locking on the phone can break this if auto-lock happens before the app is minimized.
* As explained above, geotag information can not be written to the original image file.
* GPS updates are only at most every 15 seconds, if you are driving 15 seconds might be a noticeable position change from where the picture was taken.
*
Images that are deleted from the memory card will automatically have their associated sidecar file removed, however if geoTagger is running, the upload list will not be updated to reflect that these images were removed until after the app is restarted.* This application makes a noticeable hit to your battery usage.
CHANGELOG
-----------------
0.80 - Initial posted version
0.90 - Added Flickr Uploader
- Improved performance
0.91 - Flickr upload filelist is updated when new pictures
without the need to restart the app.
0.92 - Upload filelist is now sorted by date (descending)
- File upload is now forked so you do not have to sit and wait.
- Deleted files are now removed from upload list without restart.
COOL STUFF YOU CAN DO WITH FLICKR GEOTAGGED PHOTOS
-----------------------------------------------------------------------------
* Copy the URL for the geoFeed from the bottom of your Flickr photostream and paste it into the search bar on
http://maps.google.com to see the last 25 geotagged photos on google maps.
---------
I would be very interested in hearing how well this application works for anyone and seeing the geotagged photos if you'd like to post them as replies to this thread for myself and others to admire!
Please note the version number when reporting bugs, thanks!