Wetter auf eigener Website mit Google Weather API 11.09.2009

  • zu del.icio.us hinzufügen zu Mister Wong hinzufügen zu Technorati hinzufügen RSS Feed abonnieren

Einige Wetter-Websites bieten Webmastern ein Wetter-Widget an, das diese auf ihrer Homepage integrieren können. Allerdings hat man darüber keine Gestaltungsfreiheit und muss gegebenenfalls unschöne Werbung z. B. in Form eines Links auf dem Widget hinnehmen. Google jedoch liefert eine Schnittstelle, die Wetterdaten im „Rohformat” in XML zur Verfügung stellt. Mit Hilfe von PHP5 lassen sich die Wetterdaten problemlos auslesen.

» Demo (Wettervorhersage)
» Das PHP-Script als Download (Nutzungsrechte siehe Datei)


Google Weather API

Unter folgendem URL kann man das Google Wetter mit allen Wetterdaten abrufen:

http://www.google.com/ig/api?weather=[LOCATION]&hl=[LANGUAGE]

[LOCATION] und [LANGUAGE] müssen entsprechend ersetzt werden. Bei der Wetterstation ([LOCATION]) kann man entweder die Postleitzahl in Kombination mit dem Land angeben (z. B. 46562-Germany) oder direkt den Ort (z. B. Voerde). Die erste Variante ist eindeutiger, denn gleichnamige Städte können in unterschiedlichen Ländern oder mehrmals in einem Land vorkommen (vgl. Frankfurt). Die Sprache ([LANGUAGE]) wird als Kürzel angegeben (z. B. de oder en).


Wetterdaten auslesen

Folgende Funktion ließt in PHP 5 die Wetterdaten vom Google Wetter aus (PHP 4 wird nicht unterstützt):

function website_wetter($plz, $land, $icons_src="/", $sprache="de", $ort="")
{
$icons_google = "/ig/images/weather/";

if($ort != "")
{
$station = $ort;
}
else
{
$station = $plz."-".$land;
}

$api = simplexml_load_string(utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=".$station."&hl=".$sprache)));

$wetter = array();

// Allgemeine Informationen
$wetter['stadt'] = $api->weather->forecast_information->city->attributes()->data;
$wetter['datum'] = $api->weather->forecast_information->forecast_date->attributes()->data;
$wetter['zeit'] = $api->weather->forecast_information->current_date_time->attributes()->data;

// Aktuelles Wetter
$wetter[0]['zustand'] = $api->weather->current_conditions->condition->attributes()->data;
$wetter[0]['temperatur'] = $api->weather->current_conditions->temp_c->attributes()->data;
$wetter[0]['luftfeuchtigkeit'] = $api->weather->current_conditions->humidity->attributes()->data;
$wetter[0]['wind'] = $api->weather->current_conditions->wind_condition->attributes()->data;
$wetter[0]['icon'] = str_replace($icons_google, $icons_src, $api->weather->current_conditions->icon->attributes()->data);

// Wettervorhersage für heute, morgen, übermorgen und in drei Tagen ($wetter[1] bis $wetter[4])
$i = 1;
foreach($api->weather->forecast_conditions as $weather)
{
$wetter[$i]['wochentag'] = $weather->day_of_week->attributes()->data;
$wetter[$i]['zustand'] = $weather->condition->attributes()->data;
$wetter[$i]['tiefsttemperatur'] = $weather->low->attributes()->data;
$wetter[$i]['hoechsttemperatur'] = $weather->high->attributes()->data;
$wetter[$i]['icon'] = str_replace($icons_google, $icons_src, $weather->icon->attributes()->data);

$i++;
}

return $wetter;
}

Erläuterung der Parameter:
$plz enthält die Postleitzahl des jeweiligen Ortes
$land enthält das Land, in dem der Ort liegt
$icons_src enthält den Pfad zum Ordner, in dem die Wetter-Icons liegen
$sprache enthält die Sprache, in der die Wetterdaten bereitgestellt werden sollen
$stadt enthält den Namen der Stadt (wird dieser angegeben, werden $plz und $land in der Funktion nicht beachtet)


Wetterdaten ausgeben

Da die Funktion ein Array zurückgibt, müssen wir diese also in einem Array speichern:

$wetter = website_wetter("46562", "Germany", "/wetter-icons/");

Die Wettervorhersage für heute könnte man wie folgt ausgeben:

echo "Wetter in ".$wetter['stadt'].":<br/>\n";
echo $wetter[1]['wochentag']."<br/>\n";
echo $wetter[1]['zustand']."<br/>\n";
echo "min. ".$wetter[1]['tiefsttemperatur']."&deg; C | max. ".$wetter[1]['hoechsttemperatur']."&deg; C<br/>\n";
echo "<img src=\"".$wetter[1]['icon']."\" alt=\"".$wetter[1]['zustand']."\" />\n";

Das Ergebnis in HTML schaut dann z. B. so aus:

Wetter in Voerde (Niederrhein), NRW:<br/>
Fr.<br/>
Meist sonnig<br/>
min. 11&deg; C | max. 18&deg; C<br/>
<img src="/wetter-icons/mostly_sunny.gif" alt="Meist sonnig" />

Die verschiedenen Wetter-Icons

Google sieht für die Wetterdaten 22 verschiedene Zustände des Wetters vor. Demnach gibt es auch 22 verschiedene Icons, die das entsprechende Wetter verdeutlichen. Wichtig ist, dass man sich nach den vorgegebenen Dateinamen richtet, wenn man eigene Icons verwenden möchte. Hier die Liste der 22 Wetter-Icons:

chance_of_rain.gif
sunny.gif
mostly_sunny.gif
partly_cloudy.gif
mostly_cloudy.gif
chance_of_storm.gif
showers.gif
rain.gif
chance_of_snow.gif
cloudy.gif
mist.gif
storm.gif
thunderstorm.gif
chance_of_tstorm.gif
sleet.gif
snow.gif
icy.gif
dust.gif
fog.gif
smoke.gif
haze.gif
flurries.gif

Um die Wetter-Icons von Google zu vergleichen, sind diese auf der Demo-Seite aufgelistet.
Hier ein Anwendungsbeispiel (gefunden auf DuisburgFans.de):
Wetterbox auf DuisburgFans.de


Rechtliches

Google liefert für seine Weather API keine offizielle Dokumentation. Die Google Wetter API ist vielmehr ein Produkt des Google Kalenders, in dem Google das Wetter einbindet. Die Nutzung der Weather API erfolgt somit zurzeit noch auf eigene Gefahr. Eine Alternative liefert der Yahoo! Weather RSS Feed, der allerdings nicht mit deutschen Postleitzahlen umgehen kann, sondern eine Location ID benötigt. Zur Ermittlung beim Yahoo! Wetter einfach die Stadt suchen und auf der Unterseite dann auf den RSS-Button klicken.

» Demo (Wettervorhersage)
» Das PHP-Script als Download (Nutzungsrechte siehe Datei)

Wie immer kann man mich bei Fragen gerne über das Kontaktformular anschreiben oder einen Kommentar hinterlassen.


« Zur Übersicht

Kreil
1
am 05.10.2009 um 09:43 Uhr.
Hallo,
leider bekomme ich das tolle PHP-Script nicht zum laufen, nach dem Ausfüllen der oberen "function website_wetter" habe ich immer einen Fehler in Zeile 14 ?! Liegt das irgendwie am "Array" ?

Vielen Dank im Voraus.

MfG
Kreil
Sebastian
2
am 05.10.2009 um 11:33 Uhr.
Die Parameter der website_wetter Funktion bitte nicht ändern. Die entsprechenden Werte der Parameter erst im Funktionsaufruf
$wetter = website_wetter("46562", "Germany", "/wetter-icons/");
angeben.
Sebastian
3
am 06.10.2009 um 10:12 Uhr.
Parse error: parse error, unexpected T_OBJECT_OPERATOR
Diese Fehlermeldung ist ein untrügliches Anzeichen dafür, dass lediglich PHP 4 auf eurem Server bzw. Webspace läuft. Simplexml benötigt jedoch PHP 5.
Joerg
4
am 10.10.2009 um 10:24 Uhr.
Wer bei 1und1 ist, kann per .hatacces PHP 5 einstellen, sofern das in seinem Paket ist. Dazu einfach in die .htacces folgende Zeile am Anfang einfügen:
AddType x-mapp-php5 .php AddHandler x-mapp-php5 .php
Bei mir kommt trotzdem:
Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /homepages/22/XXXXXXXXXXXX/htdocs/XXXXXXXXX/weather.php on line 26
Warning: file_get_contents(http://www.google.com/ig/api?weather=37083-Deutschland&hl=de) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /homepages/22/XXXXXXXXXXXX/htdocs/XXXXXXXXX/weather.php on line 26
Fatal error: Call to a member function attributes() on a non-object in /homepages/22/XXXXXXXXXXXX/htdocs/XXXXXXXXX//weather.php on line 31
Sebastian
5
am 10.10.2009 um 11:34 Uhr.
Hallo Joerg,

überprüfe doch bitte mal die php.ini Einstellungen.
allow_url_fopen = 1 ist wichtig.

Du kannst auch eine phpinfo.php erstellen mit dem Inhalt:
<?php phpinfo(); ?>

Und dort schauen, ob allow_url_fopen aktiviert ist. Wenn nicht, solltest du mit deinem Webspace Anbieter sprechen.
Alexander
6
am 19.10.2009 um 23:35 Uhr.
Erste Snippet ist super, aber er zeigt keine russische (oder änliche ) sprache.
Fix:
if ($sprache=='ru') {
$api = simplexml_load_string(iconv('cp1251', 'utf-8', (file_get_contents("http://www.google.com/ig/api?weather=".$station."&hl=".$sprache))));
} else {
$api = simplexml_load_string(utf8_encode(file_get_contents("http://www.google.com/ig/api?weather=".$station."&hl=".$sprache)));
}
sonst alles gut!
Martin
7
am 30.11.2009 um 19:18 Uhr.
Hallo!

Funktioniert das auch mit Österreichischen Orten?

lg
Sebastian
8
am 30.11.2009 um 20:41 Uhr.
Hallo Martin,

ja, das funktioniert mit allen internationalen Orten.

Gruß
Sebastian
Sascha
9
am 22.12.2009 um 09:07 Uhr.
Hallo.
Funktioniet an und für sich super. Nur zeigt es mir die Umlaute nicht richtig an.
Bewölkt anstatt Bewölkt.

Gruß
Sascha
Sascha
10
am 22.12.2009 um 10:05 Uhr.
Hat sich erledigt, habe noch das hier eingebaut:
header('content-type: text/html; charset=utf-8');

Sascha
Rainer
11
am 17.02.2010 um 00:40 Uhr.
Habe ein weiteres Wetter-Icon gefunden (Aktuell gerade zu sehen unter "Paris")
Und zwar "rain_snow.gif" (Text: Regen und Schnee?) Das Bild ist identisch mit "storm.gif".

Vermutlich werden noch mehr als die 22 Wetterzustände von Google verwendet.

Das Script ist übrigens super!

Gruß Rainer
Jurgen
12
am 04.03.2010 um 18:04 Uhr.
Hallo
So funzt alles einwandfrei!!
Meine Frage : Kann man das auch alles Horizontal anordnen ?
Rainer
13
am 04.03.2010 um 21:58 Uhr.
Hallo Jurgen,

versuch es mal mit folgender Änderung im Script (ab // Beispielhafte Ausgabe):


echo "<table width='500' border='0' bgcolor='#FFFFFF' cellpadding='1' cellspacing='0'>";

echo "<tr>\n";
echo "<td colspan='6'><font face='Verdana' size='2' color='#000000'><b>Das Wetter in ".$wetter['stadt']."</b></font></td>\n";
echo "</tr>\n";

echo "<tr>\n";
echo "<td align='center' width='53' bgcolor='#FFFFFF'><font face='Verdana' size='1'>Aktuell</font></td>\n";
echo "<td></td>\n";
echo "<td align='center' width='80' bgcolor='#FFFFFF'><font face='Verdana' size='2'>Heute</font></td>\n";
echo "<td align='center' width='80'><font face='Verdana' size='2'>".$wetter[2]['wochentag']."</font></td>\n";
echo "<td align='center' width='80'><font face='Verdana' size='2'>".$wetter[3]['wochentag']."</font></td>\n";
echo "<td align='center' width='80'><font face='Verdana' size='2'>".$wetter[4]['wochentag']."</font></td>\n";
echo "</tr>\n";

echo "<tr>\n";
echo "<td align='center' width='53' bgcolor='#FFFFFF'><img border='1' src=\"http://www.google.com/ig/images/weather".$wetter[0]['icon']."\" alt=\"".$wetter[0]['zustand']."\" /></td>\n";
echo "<td bgcolor='#FFFFFF'><font face='Verdana' size='1'>".$wetter[0]['wind']."<br>".$wetter[0]['luftfeuchtigkeit']."</font></td>\n";
echo "<td align='center' width='80' bgcolor='#FFFFFF'><img border='1' src=\"http://www.google.com/ig/images/weather".$wetter[1]['icon']."\" alt=\"".$wetter[1]['zustand']."\" /></td>\n";
echo "<td align='center' width='80'><img border='1' src=\"http://www.google.com/ig/images/weather".$wetter[2]['icon']."\" alt=\"".$wetter[2]['zustand']."\" /></td>\n";
echo "<td align='center' width='80'><img border='1' src=\"http://www.google.com/ig/images/weather".$wetter[3]['icon']."\" alt=\"".$wetter[3]['zustand']."\" /></td>\n";
echo "<td align='center' width='80'><img border='1' src=\"http://www.google.com/ig/images/weather".$wetter[4]['icon']."\" alt=\"".$wetter[4]['zustand']."\" /></td>\n";
echo "</tr>\n";

echo "<tr>\n";
echo "<td align='center' bgcolor='#FFFFFF'><font face='Verdana' size='3'><b>".$wetter[0]['temperatur']."&deg;C</b></font></td>\n";
echo "<td bgcolor='#FFFFFF'><font face='Verdana' size='2'><b>".$wetter[0]['zustand']."</b></font></td>\n";
echo "<td align='center' bgcolor='#FFFFFF'><font face='Verdana' size='2'><font color='#FF0000'>".$wetter[1]['hoechsttemperatur']."&deg;C</font><br>\n";
echo "<font color='#0000FF'>".$wetter[1]['tiefsttemperatur']."&deg;C</font></font></td>\n";
echo "<td align='center'><font face='Verdana' size='2'><font color='#FF0000'>".$wetter[2]['hoechsttemperatur']."&deg;C</font><br>\n";
echo "<font color='#0000FF'>".$wetter[2]['tiefsttemperatur']."&deg;C</font></font></td>\n";
echo "<td align='center'><font face='Verdana' size='2'><font color='#FF0000'>".$wetter[3]['hoechsttemperatur']."&deg;C</font><br>\n";
echo "<font color='#0000FF'>".$wetter[3]['tiefsttemperatur']."&deg;C</font></font></td>\n";
echo "<td align='center'><font face='Verdana' size='2'><font color='#FF0000'>".$wetter[4]['hoechsttemperatur']."&deg;C</font><br>\n";
echo "<font color='#0000FF'>".$wetter[4]['tiefsttemperatur']."&deg;C</font></font></td>\n";
echo "</tr>\n";

echo "<tr>\n";
echo "<td colspan='2'><font face='Verdana' size='1'>Script:<a href=\"http://www.web-spirit.de/webdesign-tutorial/9/Wetter-auf-eigener-Website-mit-Google-Weahter-API\" target=\"_blank\">Wettervorhersage</a></font></td>\n";
echo "<td align='center' width='80' bgcolor='#FFFFFF'><font face='Verdana' size='1'>".$wetter[1]['zustand']."</font></td>\n";
echo "<td align='center' width='80'><font face='Verdana' size='1'>".$wetter[2]['zustand']."</font></td>\n";
echo "<td align='center' width='80'><font face='Verdana' size='1'>".$wetter[3]['zustand']."</font></td>\n";
echo "<td align='center' width='80'><font face='Verdana' size='1'>".$wetter[4]['zustand']."</font></td>\n";

echo "</tr>\n";

echo "</table>";
Jurgen
14
am 05.03.2010 um 09:10 Uhr.
Hallo
Wenn ich das so nach //Beispiel Ausgabe
Einfüge funzt es nicht !
Heißt ich kopiere Deinen Code lösche alles unterhalb von // Beispiel Ausgabe
und füge Deinen Code ein. Wenn ich das richtig verstanden habe ?
Wenn ich das so mache funktioniert das leider nicht.
Sorry bin in PHP nicht wirklich soo Fit.
Aber Danke erstmal für die so schnelle Reaktion (Antwort)
hätte ich nicht erwartet !
Jurgen
15
am 05.03.2010 um 09:20 Uhr.
Fehler zusehen auf der Seite
Parse error: syntax error, unexpected '<' in /is/htdocs/wp1154660_QRKFVV4YIX/www/web/klein/wetter2.php on line 63
Sebastian
16
am 05.03.2010 um 09:33 Uhr.
Es ist doch alles viel einfacher.
Einfach den Paragraphen <p> eine Klasse geben z. B. <p class="wetter"> und dann in CSS nebeneinander floaten lassen.
p.wetter { float:left; }
Jurgen
17
am 05.03.2010 um 09:39 Uhr.
Jungs ihr seit einfach Klasse !!!!!
Jetzt funzt es einwandfrei !!!!
Jurgen
18
am 05.03.2010 um 10:03 Uhr.
Jetzt muss ich nur noch die Umlaute hinbekommen.
Da ich mit Wysiwyg Web Builder Arbeite muss auch das per Hand geändert werden.
Aber das bekomme ich auch noch raus wie und wo das geht.
Rainer
19
am 06.03.2010 um 00:41 Uhr.
@Jürgen:
Habe gesehen, dass es doch geklappt hat.
Vermutlich hat das Ende Zeichen für php gefeht? ( ?> )
Problem Umlaute: Zeichensatz utf-8 verwenden. Kommentar 9 von Sascha.

Gruß nach Thüringen

@Sebastian:
Ich verwende halt noch Tabellen beim Erstellen meiner Seiten. Mit Stylesheets geht das natürlich besser und mit weniger Aufwand
Spider IT Deutschland - René Mansveld
20
am 19.03.2010 um 11:48 Uhr.
1. Danke für die Funktion, die dient mir als Beispiel (muss noch einiges dran gemacht werden).

2. Die Übergabe von PLZ, Ort und Land geht viel einfacher mit + anstatt -, dann kann man auch grundsätzlich alles und in beliebiger Reihenfolge einsetzen und der Ort wird auch erkannt wenn mehrere Orte die gleiche PLZ haben. Beispiel: http://www.google.com/ig/api?weather=37627+Stadtoldendorf+Deutschland&hl=de.

3. Tabellen für die Gestaltung sind mega-out, denn Tabellen gibt es nur zur tabellarischen Darstellung von Daten. Dies sollte im Hinblick auf die Barrierefreiheit eingehalten werden, da Screen-Reader eine Tabelle nur als solches erkennen können.

4. In eine PHP-Datei kann reines HTML stehen, nicht nur in echo-Anweisungen. Dafür vorher den PHP-Abschnitt beenden mit ?> und nach dem HTML-Abschnitt mit <?php wieder starten. Der Nutzen: Der HTML-Code ist in ein HTML-Editor erstell- und verwaltbar. Ausgaben aus PHP lassen sich an beliebiger Stelle mit <?php echo $x; ?> oder <?=$x?> einbinden (letztere Möglichkeit nicht unter Windows).

5. Für das freie CMS Contenido (www.contenido.org) gibt es das Wetter bald als Modul, vielen Dank nochmal für den Beispielcode!
Webtwist - Webdesign, Werbeagentur
21
am 20.03.2010 um 09:20 Uhr.
Der letzte Eintrag ist zwar schon ein bissl her, aber als rechtlich sichere Alternative gibt es noch das openWeather Api von Wetter.com
Thomas Wolf
22
am 22.03.2010 um 17:52 Uhr.
Habe das script auf meinem webspace laufen gehabt, und in einem iframe von woanders aufgerufen. Hat ca. 10 Tage funktioniert, jetzt geht es nicht mehr. Nachdem mir mein Provider versichert hat, keinerlei Umstellungen am Server vorgenommen zu haben, kann ich nur den Schluss ziehen, dass google selbst die Bremse gezogen hat. Andererseits funktioniert ja hier auch noch alles - und diese Seiten werden wohl intensiver genutzt werden, als die meinigen, wobei letztere gerade einer wirklich intensiven Testingphase unterzogen werden. Irgendwelche Neuigkeiten zu den rechtlichen Aspekten?
Thomas Wolf
23
am 22.03.2010 um 19:16 Uhr.
Absurderweise geht es jetzt, da ich das script auf einen anderen Server übersiedelt habe, auch wieder vom ursprünglichen Ort aus. Was weiß ich, was da los war. Vielleicht war meine Paranoia google gegenüber ja gänzlich unberechtigt. Wie dem auch sei, ich habe das script um einen kleinen Datencache ergänzt - es reicht ja wohl meist, die Wettervorschau nur dann und wann zu aktualisieren. Hier der ergänzente Teil, der die Zeile mit $api=... ersetzt.

$file=$station.$sprache.\".xml\";
$interval=60*60*6; // sec * min * h = Updateintervall [hier alle 6h], so rechnet es sich besser ;)
if (file_exists($file) && (filectime($file)+$interval>time()))
{
$content=file_get_contents($file);
}
else
{
$request = file_get_contents(\"http://www.google.com/ig/api?weather=\".$station.\"&hl=\".$sprache);
if (!$request) $content=file_get_contents($file); // lebt davon, dass es erstmal klappt
else {$content=$request; $writeres=file_put_contents($file,$content);} // achtung auf schreibrechte!
}
$api = simplexml_load_string(utf8_encode($content));
Andreas
24
am 04.04.2010 um 13:33 Uhr.
Tolles script,

habe allerdings auch Probleme mit den Umlauten.
Den Header kann ich leider nicht auf UTF-8 setzen [ header(\\\'content-type: text/html; charset=utf-8\\\') ]
da die gesamten Seiten auf ISO-8859-1 aufsetzen.

Gibt es hier eine Lösung?

Probiere schon rum mit z.B.:
// Aktuelles Wetter
$wetter[0][\\\'zustand\\\'] = utf8_encode($api->weather->current_conditions->condition->attributes()->data);

aber es will nicht klappen.

LG
Andreas
Philipp
25
am 04.04.2010 um 13:58 Uhr.
Hallo!

Tolles Skript. Inspirierte mich zu www.regnets.in/. Einfach beispielsweise www.regnets.in/berlin eingeben und fertig.

Grüße
Andreas
26
am 04.04.2010 um 21:37 Uhr.
Hab das Problem mit den Umlauten nun gelöst:
Hier der Beipsiel-Code:

// Funktionsaufruf in Array
$wetter = website_wetter("30159", "Germany");

// replace special characters in wetter
// Ö->Oe, Ä->Ae, Ü->Ue
// ö->oe, ä->ae, ü->ue
$search = array("/Â/", "/ö/", "/ü/");
$replace = array(" ", "ö", "ü");
$wetter[0]['zustand'] = trim(preg_replace($search, $replace, $wetter[0]['zustand']));
$wetter[0]['luftfeuchtigkeit'] = trim(preg_replace($search, $replace, $wetter[0]['luftfeuchtigkeit']));
$wetter[1]['zustand'] = trim(preg_replace($search, $replace, $wetter[1]['zustand']));
$wetter[2]['zustand'] = trim(preg_replace($search, $replace, $wetter[2]['zustand']));
$wetter[3]['zustand'] = trim(preg_replace($search, $replace, $wetter[3]['zustand']));
$wetter[4]['zustand'] = trim(preg_replace($search, $replace, $wetter[4]['zustand']));

// Beispielhafte Ausgabe
Andreas
27
am 08.04.2010 um 21:33 Uhr.
Was gib ich denn zum Beipsiel an für WIEN / Österreich?
PLZ 2201

$wetter = website_wetter("2201", "Österreich"); Funktioniert nicht !
Sebastian
28
am 09.04.2010 um 09:31 Uhr.
$wetter = website_wetter("", "Austria", "/wetter-icons/", "de", "Gerasdorf+bei+Wien");
Andreas
29
am 11.04.2010 um 19:10 Uhr.


so geht es nicht ???
Sebastian
30
am 12.04.2010 um 00:09 Uhr.
$wetter = website_wetter("", "Austria", "/wetter-icons/", "de", "Gerasdorf+bei+Wien");
Andeas
31
am 13.04.2010 um 23:04 Uhr.
So gehts:
$wetter = website_wetter("Graz", "Austria");

Nun werden aber die z.T. engl. Namen ausgegeben, also z.B. "Das Wetter für Graz, Styria:" anstatt ....Graz, Steiermark...
Kan man das eindeutschen?
Ramon
32
am 17.04.2010 um 19:47 Uhr.
Super kleines Script! Danke!

Hat einer von euch schon versucht, die Google-Gifs gegen PNGs auszutauschen ?
Markus Essler
33
am 21.04.2010 um 20:10 Uhr.
Vielen Dank für dieses hervorragende Script!

Was mich daran allerdings enorm stört, ist die Tatsache (wie auch von Andreas aus Österreich erwähnt), dass die Bundesländer bzw. das jeweilige Bundesland nicht in Deutsch sondern in Englisch angezeigt werden.

Das liegt aber bestimmt an der Google-API und nicht an dem Script (vermute ich zumindest).

Sollte sich trotzdem eine Lösung für dieses „Problem“ finden lassen, dann wäre ich sehr erfreut.

Besten Gruß

Markus Essler
Andreas
34
am 25.04.2010 um 18:41 Uhr.
Zu Markus: englische Namen

Das Problem kann man zumindest händisch lösen - bei Deiner einzigen Site kannst Du schreiben:
anstatt:
// Beispielhafte Ausgabe
echo "<h3><a id=\"Wetter\">Das Wetter für ".$wetter['stadt'].":</a></h3>\n";

Nun
// Beispielhafte Ausgabe
echo "<h3><a id=\"Wetter\">Das Wetter für Heilbronn, Bayern</a></h3>\n";
Ramon
35
am 30.04.2010 um 08:55 Uhr.
Um die Alpha-Transparent der PNG-Grafiken nutzen zu können, müssen die PNG-Grafiken natürlich geladen werden. Ich habe es mal mit einer zusätzlichen Zeile im Script gelöst. Gleich nach der Zeile:

$wetter[$i][\'icon\'] = str_replace($icons_google, $icons_src, $weather->icon->attributes()->data);

Habe ich folgende Zeile eingefügt:

$wetter[$i][\'icon\'] = str_replace(\'.gif\', \'.png\', $wetter[$i][\'icon\']);

Ich habe es mal auf meinem kleinen privaten Portal eingebaut, auf dem ich verschiedene Dinge teste, bevor ich sie an anderer Stelle einsetze ( www.easyQ.de )
ProfdrDenis
36
am 13.05.2010 um 17:03 Uhr.
Super tolles Script, Aber wie kann ich eine Abfrage einbauen, dass der Nutzer in meinem Forum den Ort selbst eingibt? und das nicht vorgegeben ist?
Alexey
37
am 05.06.2010 um 22:02 Uhr.
Super tipp mit PNG, hat irgendjemand eine idee wie ich statt text fuer wind auch PNG bilder namen generieren kann und text fuer windgeschwindigkeit.
Das waehre einfach HAMMER...

DANKE
Kevin
38
am 21.06.2010 um 10:32 Uhr.
Funktioniert einwandfrei;)
Ramon
39
am 23.06.2010 um 10:46 Uhr.
Manchmal scheint die Abfrage einiger Orte unterbrochen zu sein. Ein Fehler-Handler wäre angebracht, da sich Fatal-Errors auf der Website nicht so gut präsentieren lassen. Hat sich schon jemand darüber Gedanken gemacht?
mark
40
am 29.08.2010 um 22:00 Uhr.
ich hab mir n fehler code eingebaut:

if (isset($api->weather->problem_cause)) {
$x = (string)$api->weather->problem_cause->attributes()->data;
return $x;
}
//ansonsten weiter

Einen eigenen Kommentar schreiben






captcha