<?php
$ID = '$Id: exifmap.php 803 2007-07-12 18:19:28Z bb $';
$def_image = '/pic/glasses.jpg';
$image = isset($_GET['image']) ? $_GET['image'] : $def_image;
require_once 'exifgps.inc.php';
function image_exif_gps($file) {
if (
($exif = @exif_read_data($_SERVER['DOCUMENT_ROOT'] . '/' . $file, 0, true)) !== false &&
$exif['GPS']
) {
exif_gps_vars($exif, $lat, $lon, $alt);
// Return a JavaScript dictionary containing all useful GPS info
return "{isValid: true, lat: $lat, lon: $lon, alt: $alt, file: \"$file\"}";
}
else
return "{isValid: false, file: \"$file\"}";
// $h = print_r($exif['GPS'], true);
// echo "\n/*$h*/\n";
}
require 'app.inc.php';
require 'appmenu.inc.php';
$app = new Application('A Google map from EXIF GPS data', $menu);
$app->js_includes[] = '/js/2butils.js';
$app->js_includes[] = '/js/gmap.js';
$app->head_add = "<script type='text/javascript'>
var gMap, gLat, gLon;
addLoadEvent(function() {
gLat = document.getElementById('lat');
gLon = document.getElementById('lon');
if (!(gMap = GMinit('map')))
return;
gMap.addMarkerOverlay(47.0452, 7.2713, 'Home, sweet home!');
var gps = gMap.gps = " . image_exif_gps($image) . ";
if (gps.isValid) {
gMap.setCenter(
gMap.addMarkerOverlay(gps.lat, gps.lon, LatLngToHtml(gps.lat, gps.lon)),
14, G_SATELLITE_MAP
);
gLat.value = gps.lat;
gLon.value = gps.lon;
}
GEvent.addListener(gMap, 'click', function(obj, pos) {
gLat.value = pos.lat();
gLon.value = pos.lng();
});
});
</script>";
$app->header();
?>
<h2><a href="<?php echo preg_replace('#^/album/#', '/album/-image/', $image) ?>"><?php echo $image ?></a></h2>
<p></p>
<div id="map" class="float" style="width: 500px; height: 500px; margin: 7px 14px 14px 0;"></div>
<div class="float">
<img src="<?php echo $image ?>" alt="<?php echo $image ?>" width="120" />
<?php if ($image == $def_image) { ?>
<p>© 2006 <a href="http://www.senklo.ch/">matthias hänni</a></p>
<?php } ?>
</div>
<div class="float">
<form method="post" action="exifupd.php">
<input type="hidden" name="image" value="<?php echo $image ?>" />
<label for="lat">Latitude:</label>
<input type="text" id="lat" name="lat" /><br />
<label for="lon">Longitude:</label>
<input type="text" id="lon" name="lon" /><br />
<button type="submit">Update</button>
</form>
</div>
<?php $app->footer() ?>