Serveri.....
- Apache Version Apache/2.2.8 (Win32) PHP/5.2.6
jossa EXIF paikkatiedolla varustettuja valokuvia ja niitä
PHP:llä linkiksi, esimerkki kts....
http://basepath.com/index-real.php?url=blogentry/2007-05-27.htm
<?php /* To use this PHP script: 1. Get access to a web server running PHP with EXIF support enabled (compiled with --enable-exif). The PHP on Mac OS X seems to come that way, but it isn't configured by default to run in the Apache web server that comes with OS X. You'll have to do that yourself. 2. Put GPS tagged JPEGs in a directory on your Web server named "images". 3. Put this file in the parent directory of the "images" directory. 4. Get a free Google Maps API key from www.google.com/apis/maps/signup.html. 5. Replace the key below with your key (use a text editor). 6. Run this script. What's needed is a way to do this without PHP or any other scripting approach that requires installation and configuration. I'm working on that. Copyright 2007 by Marc J. Rochkind. All rights reserved, except that this script may be used under the BSD license posted at basepath.com/aup/copyright.html. */ mapit(scandir("images")); function sexagesimal_to_float($x) { eval('$f = ' . $x[0] . "+" . $x[1] . " / 60 + " . $x[2] . " / 3600;"); return $f; } function mapit($files) { echo <<<EOT <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Google Photo Map (from www.basepath.com)</title> <!-- ****** Change the key below to your personal Google Maps API key. ****** You can get a free key from www.google.com/apis/maps/signup.html ****** Carefully replace the letters replace_this_with_your_key with your key. --> <script src="http://maps.google.com/maps?file=api&v=2&key=replace_this_with_your_key" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ var images = new Array( EOT; // UFPs (Unidentified Flying Photos) are moved to Area 51. $lat_area51 = 37.405; $lon_area51 = -116.24; $first = true; $centerOnArea51 = false; for ($i = 0; $i < count($files); $i++) { if ($files[$i][0] == '.') continue; $photo = "images/$files[$i]"; $exif = exif_read_data($photo); $exif_lat = $exif["GPSLatitude"]; $exif_lon = $exif["GPSLongitude"]; if (empty($exif_lat) || empty($exif_lon)) { $centerOnArea51 = true; $lat = $lat_area51; $lon = $lon_area51; } else { $lat = sexagesimal_to_float($exif_lat); if ($exif["GPSLatitudeRef"][0] == "S") $lat = -$lat; $lon = sexagesimal_to_float($exif_lon); if ($exif["GPSLongitudeRef"][0] == "W") $lon = -$lon; } if ($first) $first = false; else echo ","; echo "\n"; echo <<<EOT new Array("$photo", $lat, $lon) EOT; } echo <<<EOT ); var area51 = null; EOT; if ($centerOnArea51) echo <<<EOT area51 = new GLatLng($lat_area51, $lon_area51); EOT; echo <<<EOT function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); for (i = 0; i < images.length; i++) { p = new GLatLng(images[i][1], images[i][2]); if (i == 0) if (area51 == null) map.setCenter(p, 15); else map.setCenter(area51, 13); m = new GMarker(p); m.image = images[i][0]; map.addOverlay(m); } map.setMapType(G_HYBRID_TYPE); EOT; echo <<<EOT GEvent.addListener(map, "click", function(marker, point) { marker.openInfoWindowHtml( marker.getPoint().toString() + "<p><a target=_blank href='" + marker.image + "'><img src='" + marker.image + "' width=200 /></a>"); }); } } //]]> </script> </head> <body onload="load()" onunload="GUnload()"> <div id="map" style="width: 600; height: 600px"></div> </body> </html> EOT; } ?>
Systeemi toimii muuten mutta EXIF ei ratkaise koordinaatteja kuvista, vaan
ne "tulostuu" kaikki "Area 51":ssä määritettyyn paikkaan, siis
$lat_area51 = 37.405; $lon_area51 = -116.24;
Serveri ja sen optiot linkissä...
http://kallenkuja3c.dy.fi/phptesti.php
PHP.INI:ssä
extension=php_mbstring.dll extension=php_exif.dll
Missä mahtaa olla bitti poikittain kun paikkatieto ei kuvista irtoa, se on kuska sama PHP toimii toisella serverillä OK - oletus että PHP/Apachen asetuksissa on jokin disable - mutta mikä?
Syy selvisi.... testiaineiston JPG kuvat olivat korruptoituneet = paikkatieto niistä hukassa, syy lienee Photo Studio ohjelma http://www.exif.org/programs.html-sivuilta
Aihe on jo aika vanha, joten et voi enää vastata siihen.