Google hat leider den Wetterdienst endgültig eingestellt, dieser Mod funktioniert daher nicht mehr !
Die Wetterdaten sind seit Google Api V3 in diesen Mod enthalten [Mod] EXIF V1.7.10 Optional Googlemap
Interaktive Wetterdaten zu den Bilder
Diese Modifikation ist eine Gemeinschaftsarbeit von @mawenzi und mir.
Mit diesen Mod ist es möglich, sofern eure Bilder Geo Koordinaten besitzen, das Aktuelle Wetter des Aufnahme Ortes
anzuzeigen.
Vorrausetzung das diese Modifikation auf euren Server läuft, ist die frei geschaltene PHP Funktion [function.file],
ein für eure Webseite gültiger
"Google Api key",
und ein funktionierender Google Map Mod oder Exif Mod um die Koordinaten aus den Bilder auszulesen.
Sprachen: Deutsch und Englisch.
In der Datei im Abschnitt **** Config Weather Mod **** tragt ihr euren
"Google Api key" ein.
In die Variablen "$lat_def" "$lon_def" und "$ort_def" könnt ihr Koordinaten und einen Ortsnamen hineinschreiben,
sie dienen als Fallback falls ein Bild keine Koordinaten hat.
Um Den Mod vorab zu Testen, speichert die Datei "weather.php" mit einen gültigen Google API Key in euren root Ordner ab und ruft sie über euren Browser auf.
"
www.YourDomain.com/weather.php" kommen keine Fehlermeldungen könnt ihr den Mod installieren.
Neue Datei:
weather.php
1.)Erstellt einen neue Datei "weather.php" oder ladet sie euch aus den Anhang herrunter und speichert sie in euren root Ordner ab.
<?php
/****************************************************************************************************************
* *
* Wetterbutton / Popup auf Geo-Data-Basis mit Google-Wetter-Infos und Google-Maps *
* Für die Verwendung von 4images-Gallery mit Google-Maps-Erweiterung *
* *
*****************************************************************************************************************
* File : weather.php *
* Version : 1.00 *
* Date : 26.10.2009 *
* Autoren : Detlev aka mawenzi & Andi aka Rembrandt *
* Website / Demo : http://klick.kl.funpic.de/google_maps_images.php *
* http://demo.vienna-pictures.com *
* Auf dem Server : von Andi aka Rembrandt *
* Required : PHP Funktion [function.file]: URL file-access must enable in the server configuration *
* Google Api Key: http://code.google.com/apis/maps *
* Please read terms and condition for use Google Api keys ! *
* *
* Call : http://www.yourDomain.com/weather.php?lat={image_lat}&lon={image_lon}&ort={image_name} *
* *
****************************************************************************************************************/
define('GET_CACHES', 1);
define('ROOT_PATH', './');
include(ROOT_PATH.'global.php');
require(ROOT_PATH.'includes/sessions.php');
$user_access = get_permission();
include(ROOT_PATH.'includes/page_header.php');
//************* Start Config Weather Mod *************************************************************************
$apikey= "ABQIAAAAaLpTp8_LEv_qTL274046DhTnhuiSb4zmEhhfDXfprWzwX2OiIBSi3KgFV8VRuPY7nD2jYIFqeGLFvw"; //your API Key
$lat_def = "48.209206"; //fallback Latidude
$lon_def = "16.372778"; //fallback Longitude
$ort_def="Stammersdorf";//fallback Weather Location
//************* End Config Weather Mod **************************************************************************
if ($config['language_dir'] == 'deutsch') {
$lang_lang = "de";
$lang_current_weather = "Das aktuelle Wetter am Aufnahmeort";
$lang_weather = "Wetter-Stand am : ";
$lang_no_weather = "Es sind keine ausreichenden<br>Wetterinformationen vorhanden !";
$lang_now = "Jetzt";
$lang_temperature = "Aktuelle Temperatur : ";
$lang_air = "Luft - ";
$lang_forecast = "Aussicht : ";
$lang_weather_forecast = "Wetter-Vorhersage für den Aufnahmeort";
$lang_min_temp = "min.Temp.:";
$lang_max_temp = "max.Temp.:";
$lang_map_location = "Google Map vom Aufnahmeort";
$lang_infos_refresh = "Infos aktualisieren";
$lang_infos_close = "Infos schließen";
}
else{
$lang_lang = "en";
$lang_current_weather = "The current Weather on Location";
$lang_weather = "The Weather on : ";
$lang_no_weather = "No Weather information available !";
$lang_now = "Now";
$lang_temperature = "Current Temperature : ";
$lang_air = "Air - ";
$lang_forecast = "Forecast : ";
$lang_weather_forecast = "Weather Forecast for the Location";
$lang_min_temp = "min.Temp.:";
$lang_max_temp = "max.Temp.:";
$lang_map_location = "Google Map of Location";
$lang_infos_refresh = "Infos Refresh";
$lang_infos_close = "Infos Close";
}
$lat=$_GET['lat'];
$lon=$_GET['lon'];
$ort=$_GET['ort'];
if(($lat == "")||($lon == "")){
$lat = $lat_def;
$lon = $lon_def;
$lat_dd = $lat_def;
$long_dd = $lon_def;
$ort = $ort_def;
}
else{
$lat_dd = $_GET['lat'];
$long_dd = $_GET['lon'];
$ort=$_GET['ort'];
}
$num = "9";
$lat_neg = strpos($lat,"-");// '$lat' auf negatives vorzeichen prüfen
if ($lat_neg === false){
$num="8";
}
$lat = $lat."00000000"; // ggf. fehlende "characters" auffüllen
$pos = strpos($lat,"."); // position von '.' ermitteln
$lat_v = substr("$lat",0,"$pos");// alle zeichen vor dem '.'
$lat_h = substr("$lat", "$pos"+1,-1);// alle zeichen nach dem '.'
$lat_e6 = substr("$lat_v"."$lat_h",0,$num);//nach dem '.' auf 8($num)stellen gekürzt, ist $lat negativ wird auf 9 ($num)stellen gekürzt
$latitude = $lat_v.".".substr("$lat_h",0,8);// alle zeichen vor dem '.' plus alle zeichen nach dem '.' auf 8 stellen gekürzt
$lon_neg = strpos($lon,"-");// '$lon' auf negatives vorzeichen prüfen
if ($lon_neg === false){
$num="8";
}
$lon = $lon."00000000"; // ggf. fehlende "characters" auffüllen
$pos = strpos($lon,"."); // position von '.' ermitteln
$lon_v = substr("$lon",0,"$pos");// alle zeichen vor dem '.'
$lon_h = substr("$lon", "$pos"+1,-1);// alle zeichen nach dem '.'
$lon_e6 = substr("$lon_v"."$lon_h",0,$num);//nach dem '.' auf 8($num)stellen gekürzen, ist $lon negativ wird auf 9 ($num)stellen gekürzt
$longitude = $lon_v.".".substr("$lon_h",0,8);// alle zeichen vor dem '.' plus alle zeichen nach dem '.' auf 8 stellen gekürzt
if ( strlen($lat) > 8 ){
$lat_e6 = substr($lat, 0, 8) . "";
}
else{$lat_e6 = $lat;
}
$lat_e6 = $lat_e6 * 1000000;
if (strlen($lon) > 8 ){
$lon_e6 = substr($lon, 0, 8) . "";
}
else{$lon_e6 = $lon;
}
$lon_e6 = $lon_e6 * 1000000;
if ($lat_dd < 0){
$lat_hemi="Süd";
}
else{$lat_hemi="Nord";
}
if ($long_dd<0){
$long_hemi="West";
}
else{$long_hemi = "Ost";
}
$lat_dd=abs($lat_dd);
$long_dd=abs($long_dd);
$lat_dd_int = intval($lat_dd);
$lat_dd_m = $lat_dd - $lat_dd_int;
$lat_dms_m_float = 60 * $lat_dd_m;
$lat_dms_m_int = intval($lat_dms_m_float);
$lat_dd_s = $lat_dms_m_float - $lat_dms_m_int;
$lat_dms_s = round((60 * $lat_dd_s),2);
$long_dd_int = intval($long_dd);
$long_dd_m = abs($long_dd - $long_dd_int);
$long_dms_m_float = 60 * $long_dd_m;
$long_dms_m_int = intval($long_dms_m_float);
$long_dd_s = $long_dms_m_float - $long_dms_m_int;
$long_dms_s = round((60 * $long_dd_s),2);
//Fallback
if (($lat == "")||($lon == "")){
$url = "http://www.google.com/ig/api?weather=,,,".$lat_e6.",".$lon_e6."&hl=".$lang_lang."";
$ort = $ort_def;
$latitude = $lat_def;
$longitude = $lon_def;
$lat_dd = $lat_def;
$long_dd = $lon_def;
}
else{$url = "http://www.google.com/ig/api?weather=,,,".$lat_e6.",".$lon_e6."&hl=".$lang_lang."";
$ort = $ort;
}
//---------------------------------------------------------
$file = implode(file($url));
$wetter = preg_split('/"/', $file, -1, PREG_SPLIT_NO_EMPTY);
//---------------------------------------------------------
//---------------------------------------------------------
$stadt = $wetter[9];
$postalcode = $wetter[11];
$datum = $wetter[19];
$latitude_e6 = $wetter[11];
$longitude_e6 = $wetter[13];
$date_time = $wetter[25];
//---------------------------------------------------------
$datum_zeit = substr($date_time,0,16);
//---------------------------------------------------------
$jetzt_wetter = $wetter[29];
$jetzt_temp_f = $wetter[31];
$jetzt_temp_c = $wetter[33];
$jetzt_feuchtigkeit = $wetter[35];
$jetzt_icon = "<img src=\"".$wetter[37]."\">";
$jetzt_wind = $wetter[39];
//---------------------------------------------------------
$heute = $wetter[41];
$heute_min = $wetter[43];
$heute_max = $wetter[45];
$heute_icon = "<img src=\"".$wetter[47]."\">";
$heute_wetter = $wetter[49];
//---------------------------------------------------------
$zwei = $wetter[51];
$zwei_min = $wetter[53];
$zwei_max = $wetter[55];
$zwei_icon = "<img src=\"".$wetter[57]."\">";
$zwei_wetter = $wetter[59];
//---------------------------------------------------------
$drei = $wetter[61];
$drei_min = $wetter[63];
$drei_max = $wetter[65];
$drei_icon = "<img src=\"".$wetter[67]."\">";
$drei_wetter = $wetter[69];
//---------------------------------------------------------
$vier = $wetter[71];
$vier_min = $wetter[73];
$vier_max = $wetter[75];
$vier_icon = "<img src=\"".$wetter[77]."\">";
$vier_wetter = $wetter[79];
//---------------------------------------------------------
//--- Ausgabe Der Google-Wetter-Button von detlev aka mawenzi , Stand: 26.10.2009 ---
//--- mit neuen Google-Maps-API-Key für http://klick.vienna-pictures.com/ ---
echo "<html><head>";
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset={charset}\">";
echo "<title>Wetterinfos zum Bildstandort ".$ort."</title>";
echo "<meta name=\"description\" content=\"Aktuelle Wetterinformationen von Google zu deinem Bildstandort.\" >";
echo "<meta name=\"keywords\" content=\"4images, Wetter, Wetterinformationen, Google, Maps, Bildstandort, Latitude, Longitude\" >";
echo "<script type=\"text/javascript\" src='http://maps.google.com/maps?file=api&v=2&key=".$apikey."&oe=iso-8859-1'></script>";
echo "<script type=\"text/javascript\">";
?>
//<![CDATA[
<?php
echo "function load() {";
echo "if (GBrowserIsCompatible()) {";
echo "var mapmarker = new GMarker(new GLatLng(".$latitude.", ".$longitude."));";
echo "var dMapDiv = document.getElementById('detailmap');";
echo "var detailmap = new GMap2(dMapDiv);";
echo "detailmap.setCenter(new GLatLng(".$latitude.", ".$longitude."), 10);";
echo "detailmap.addControl(new GSmallZoomControl ());";
echo "detailmap.addOverlay(mapmarker);";
echo "var CopyrightDivMap = dMapDiv.firstChild.nextSibling;";
echo "var CopyrightImgMap = dMapDiv.firstChild.nextSibling.nextSibling;";
echo "CopyrightDivMap.style.display = 'none';";
echo "CopyrightImgMap.style.display = 'none';";
echo "var mapmarker = new GMarker(mapmarker);";
echo "}";
echo "}";
?>
//]]>
<?php
echo "</script>";
echo "<style type=\"text/css\">";
echo "<!--";
echo "body { font-family: tahoma, arial, verdana; font-size: 11px; } ";
echo "td { font-family: tahoma, arial, verdana; font-size: 11px; } ";
echo "a { font-family: tahoma, arial, verdana; font-size: 11px; color:#004080; } ";
echo ".button { font-family: tahoma, arial, verdana; font-size: 11px; width: 120px; } ";
echo "-->";
echo "</style>";
echo "</head><body onload=\"load()\" onunload=\"GUnload()\">";
echo "<center>";
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"1\" width=\"300\" ><tr><td bgcolor=\"#666666\">";
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" ><tr><td bgcolor=\"#ffffff\">";
echo "<table border=\"0\" cellspacing=\"2\" cellpadding=\"2\" >";
echo "<tr><td valign=\"top\" align=\"center\" colspan=\"3\" bgcolor=\"#cccccc\">";
echo "<b><span style=\"font-size:14px;\">$lang_current_weather<br>".$ort."</span></b>";
echo "</td></tr><tr><td valign=\"top\" align=\"center\" colspan=\"3\" bgcolor=\"#e5e5e5\">";
echo "<b>$lang_weather".$datum_zeit." Uhr;</b>";
echo "</td></tr><tr><td valign=\"top\" align=\"center\" colspan=\"3\" bgcolor=\"#efefef\">";
echo "Geo-Data-Input : lat = ".$latitude." ; lon = ".$longitude."";
echo "</td></tr><tr><td valign=\"top\" align=\"center\" colspan=\"3\" bgcolor=\"#efefef\">";
echo "Output : lat_e6 = ".$lat_e6." ; lon_e6 = ".$lon_e6."";
echo "</td></tr><tr><td valign=\"top\" align=\"center\" colspan=\"3\" bgcolor=\"#efefef\">";
echo "Output : deg. = ";
echo "$lat_hemi. ";
echo "$lat_dd_int"."° ";
echo "$lat_dms_m_int"."' ";
echo "$lat_dms_s"."''";
echo " ; ";
echo "$long_hemi ";
echo "$long_dd_int"."° ";
echo "$long_dms_m_int"."' ";
echo "$long_dms_s"."''";
echo "</td></tr>";
//--- Wenn zu weng Wetter-Infos, dann Fehlermeldung ---
if (($jetzt_temp_c == "") || ($jetzt_icon == "") || ($vier_wetter == "")) {
echo "</td></tr><tr><td valign=\"top\" align=\"center\" colspan=\"3\" bgcolor=\"#efefef\">";
echo "<br><br><br><br><b>$lang_no_weather</b><br><br><br><br><br>";
}
else
{
//--- Wetter-Tages-Segment Jetzt ---
echo "</td></tr><tr><td bgcolor=\"#efefef\" width=\"45\">";
echo "<b>$lang_now</b> :</td><td bgcolor=\"#efefef\" width=\"40\">".$jetzt_icon."</td><td bgcolor=\"#efefef\" width=\"235\">";
echo "$lang_temperature<b>".$jetzt_temp_c." °C</b> , ".$jetzt_temp_f." °F<br>";
echo "$lang_air".$jetzt_feuchtigkeit."<br>";
echo $jetzt_wind."<br>";
echo "$lang_forecast".$jetzt_wetter."</td>";
echo "</td></tr><tr><td valign=\"top\" align=\"center\" colspan=\"3\" bgcolor=\"#e5e5e5\">";
echo "<b>$lang_weather_forecast</b>"; //".$ort."
//--- Wetter-Tages-Segment Heute ---
echo "</td></tr><tr><td bgcolor=\"#efefef\" width=\"45\">";
echo "<b>".$heute."</b> :</td><td bgcolor=\"#efefef\" width=\"40\">".$heute_icon."</td><td bgcolor=\"#efefef\" width=\"235\">";
echo "$lang_min_temp<b>".$heute_min." °C</b> ; $lang_max_temp<b>".$heute_max." °C</b><br>";
echo "$lang_forecast".$heute_wetter."";
//--- Wetter-Tages-Segment Morgen ---
echo "</td></tr><tr><td bgcolor=\"#efefef\" width=\"45\">";
echo "<b>".$zwei."</b> :</td><td bgcolor=\"#efefef\" width=\"40\">".$zwei_icon."</td><td bgcolor=\"#efefef\" width=\"235\">";
echo "$lang_min_temp<b>".$zwei_min." °C</b> ; $lang_max_temp<b>".$zwei_max." °C</b><br>";
echo "$lang_forecast".$zwei_wetter."";
//--- Wetter-Tages-Segment Übermorgen ---
echo "</td></tr><tr><td bgcolor=\"#efefef\" width=\"45\">";
echo "<b>".$drei."</b> :</td><td bgcolor=\"#efefef\" width=\"40\">".$drei_icon."</td><td bgcolor=\"#efefef\" width=\"235\">";
echo "$lang_min_temp<b>".$drei_min." °C</b> ; $lang_max_temp<b>".$drei_max." °C</b><br>";
echo "$lang_forecast".$drei_wetter."";
//--- Wetter-Tages-Segment ---
echo "</td></tr><tr><td bgcolor=\"#efefef\" width=\"45\">";
echo "<b>".$vier."</b> :</td><td bgcolor=\"#efefef\" width=\"40\">".$vier_icon."</td><td bgcolor=\"#efefef\" width=\"235\">";
echo "$lang_min_temp<b>".$vier_min." °C</b> ; $lang_max_temp<b>".$vier_max." °C</b><br>";
echo "$lang_forecast".$vier_wetter."";
} // Ende else
echo "</td></tr><tr><td valign=\"top\" align=\"center\" colspan=\"3\" bgcolor=\"#cccccc\">";
echo "<b>$lang_map_location</b>";
echo "</td></tr><tr><td valign=\"top\" align=\"center\" colspan=\"3\" bgcolor=\"#cccccc\">";
echo "<div id=\"detailmap\" style=\"width: 300px; height: 180px\"></div>";
echo "</td></tr><tr><td valign=\"middle\" align=\"center\" colspan=\"3\" bgcolor=\"#cccccc\" height=\"15px\">";
echo "<input type=\"button\" value=\"$lang_infos_refresh\" class=\"button\" onclick=\"history.go(0)\"> <input type=\"button\" value=\"$lang_infos_close\" class=\"button\" onclick=\"self.close()\">";
echo "</td></tr><tr><td valign=\"middle\" align=\"center\" colspan=\"3\" bgcolor=\"#cccccc\" height=\"15px\">";
echo "powered by <a href=\"http://www.google.de\" target=\"_blank\">google</a> & <a href=\"http://klick.kl.funpic.de\" target=\"_blank\">mawenzi</a> & <a href=\"http://vienna-pictures.com\" target=\"_blank\">rembrandt</a>";
echo "</td></tr></table></td></tr></table></td></tr></table>";
echo "</center>";
echo "</body></html>";
include(ROOT_PATH.'includes/page_footer.php');
?>
2.) fügt diesen link wo immer ihr wollt in eure detailseite ein:
<p class="head1"style="text-align:center;padding:4px"><span><a href="weather.php?lat={image_lat}&lon={image_lon}&ort={image_name}"
onclick="void(window.open(this.href,this.target,'width=335px,height=660px,resizable=0,menubar=no,locationbar=no,scrollbars=auto'));return false;"
style=""class="head1"title="Wetter-Vorschau im Popup Window"> Wetter Information vom Aufnahmeort </a>
</span>
</p>
3.)Zuletzt müßen den Script die Koordinaten übergeben werden.
Wenn ihr z.b. meinen Exif Mod eingebaut habt, sucht in der Funktions.php:
$site_template->register_vars(array(
"exif_value" => format_text($val, 1),
"exif_name" => $lang['exif_'.$key],
"row_bg_number" => $row_bg_number,
));
und ersetzt es mit:
$site_template->register_vars(array(
"exif_value" => format_text($val, 1),
"exif_name" => $lang['exif_'.$key],
"row_bg_number" => $row_bg_number,
"image_lon" => $row->image_GPSLongitude,
"image_lat" => $row->image_GPSLatitude
));
Sucht einfach in euren Google Mod Script die beiden Variablen die die Koordinaten enthalten und registriert sie.
Gegebenfalls müßt ihr noch die Namen der Registrierten Variablen unter Punkt
2.)"{image_lat}" und "{image_lon}"
umbenennen.
So ich hoffe wie immer das ich nichts vergessen habe.
Viel Spass damit!
mfg Andi