Hallo!
Ich habe mir aus verschiedenen Codeschnipsel ein Script zusammengestöpselt, welches Fotos aus einem Verzeichnis ausliest und sofern das Foto über Geokoordinaten verfügt, in Google Maps einen Marker setzt.
Nun möchte ich im Infofenster (= das Fenster, welches aufgeht wenn ich einen Marker anklicke) das Vorschaubild, welches in der *.jpg Datei gespeichert ist anzeigen.
Ich habe dieses bereits mit exif_thumbnail versucht, bekomme aber immer eine Fehlermeldung welche wie folgt lautet:
Cannot modify header information - headers already sent by (out
Ausserdem möchte ich, dass gleich mehrere Verzeichnisse ausgelesen werden und auch deren Unterverezeichnisse.
Kann mir bitte jemand weiterhelfen.
Besten Dank im voraus
weissi
Das Skript sieht momentan wie folgt aus:
Ich habe mir aus verschiedenen Codeschnipsel ein Script zusammengestöpselt, welches Fotos aus einem Verzeichnis ausliest und sofern das Foto über Geokoordinaten verfügt, in Google Maps einen Marker setzt.
Nun möchte ich im Infofenster (= das Fenster, welches aufgeht wenn ich einen Marker anklicke) das Vorschaubild, welches in der *.jpg Datei gespeichert ist anzeigen.
Ich habe dieses bereits mit exif_thumbnail versucht, bekomme aber immer eine Fehlermeldung welche wie folgt lautet:
Cannot modify header information - headers already sent by (out
Ausserdem möchte ich, dass gleich mehrere Verzeichnisse ausgelesen werden und auch deren Unterverezeichnisse.
Kann mir bitte jemand weiterhelfen.
Besten Dank im voraus
weissi
Das Skript sieht momentan wie folgt aus:
PHP:
<?php
$verzeichnis = "./xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/";
$gkey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
function convert_to_dec($value) {
$result = "";
if (isset($value)) {
eval ("\$result = 1.0*$value;");
}
return $result;
}
?>
<html>
<head>
<title></title>
<script src="http://maps.google.com/maps?file=api&v=2&key=<?php echo $gkey; ?>" type="text/javascript"></script>
</head>
<body>
<div id='map' style='width: 100%; height: 450px'></div>
<script type="text/javascript">
//<![CDATA[
var map = new GMap(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(+36.4124869999,-114.548824), 3);
var icon = new GIcon();
icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
icon.iconSize = new GSize(12, 20);
icon.shadowSize = new GSize(22, 20);
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);
map.enableScrollWheelZoom();
// Creates a marker whose info window displays the given number
function createMarker(point, number)
{
var marker = new GMarker(point, icon);
// Show this markers index in the info window when it is clicked
var html = number;
GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html);});
return marker;
};
<?php
$fh = opendir( $verzeichnis); //Verzeichnis
$verzeichnisinhalt = array();
while (true == ($file = readdir($fh)))
{
if ((substr(strtolower($file), -3)=="jpg") or (substr(strtolower($file), -3)=="gif")) //Abfrage nach gültigen Datenformat
{
$bilderdateinamen[] = $_SERVER["DOCUMENT_ROOT"].dirname($_SERVER['PHP_SELF']).$verzeichnis.$file;
}
}
foreach ( $bilderdateinamen AS $dateiname )
{
$exif = exif_read_data($dateiname);
if ($exif && isset($exif['GPSLatitude'])) {
$deg = convert_to_dec($exif['GPSLatitude'][0]);
$min = convert_to_dec($exif['GPSLatitude'][1]);
$sec = convert_to_dec($exif['GPSLatitude'][2]);
$latitude = ($min * 60.0 + $sec)/60.0;
$latitude = ($deg*60.0 + $latitude)/60.0;
}
else {
$latitude = -1;
}
if ($exif && isset($exif['GPSLongitude'])) {
$deg = convert_to_dec($exif['GPSLongitude'][0]);
$min = convert_to_dec($exif['GPSLongitude'][1]);
$sec = convert_to_dec($exif['GPSLongitude'][2]);
$longitude = ($min * 60.0 + $sec)/60.0;
$longitude = ($deg*60.0 + $longitude)/60.0;
}
else {
$longitude = -1;
}
if ($latitude != -1 && $longitude != -1) {
$node->location['latitude'] = $latitude;
$node->location['longitude'] = $longitude;
$node->location['lat'] = $latitude;
$node->location['lon'] = $longitude;
}
if ( $exif && isset($exif['DateTime']) ) {
$exif_datetime = $exif['DateTime'];
$node->created = strtotime($exif_datetime);
if ( $node->created == 0 ) {
list($date, $time) = split(" ", $exif_datetime);
list($year, $month, $day) = split(":",$date);
}}
if($exif['GPSLatitudeRef'] == "N") {
$lat_vorzeichen= "+";
} elseif ($exif['GPSLatitudeRef'] == "S") {
$lat_vorzeichen= "-";
} else {
$lat_vorzeichen= "";
}
if($exif['GPSLongitudeRef'] == "W") {
$lon_vorzeichen= "-";
} elseif ($exif['GPSLongitudeRef'] == "E") {
$lon_vorzeichen= "+";
} else {
$lon_vorzeichen= "";
}
if (($latitude=="+1" || $latitude=="-1") && ($longitude=1 || $longitude="-1")) echo ""; else
{
?>
var point = new GPoint(<?php echo $lon_vorzeichen.$longitude.','.$lat_vorzeichen.$latitude; ?>);
var marker = createMarker(point, '<?php if ($exif['Title']=="" && $exif['Comments']=="") echo ""; else {echo "";}?><?php if ($exif['Title']>"" && $exif['Comments']=="") echo "<b>".$exif['Title']."</b><br>"; else {echo "";}?><?php if ($exif['Title']=="" && $exif['Comments']>"") echo "<b>".$exif['Comments']."</b><br>"; else {echo "";}?><?php if ($exif['Title']>"" && $exif['Comments']>"") echo "<b>".$exif['Title']."</b><br>".$exif['Comments']."<br>"; else {echo "";}?><?php if (($latitude=="+1" || $latitude=="-1") && ($longitude=1 || $longitude="-1")) echo ""; else {echo "<br>Latitude: ". $lat_vorzeichen.$latitude. "<br>Longitude: ". $lon_vorzeichen.$longitude;}?><?php echo $de; ?>');
map.addOverlay(marker);
<?php
}
}
?>
//]]> </script>
</body>
</html>