Verwendung der Google Wetter API mit Lat-und Lon - wie formatieren?
Möchte ich die Verwendung der Google Wetter API - durch die übergabe lat und long Werte. Ich bin für das speichern dieser Werte, allerdings scheint es Google benötigt diese Werte in verschiedenen format.
d.h. Für die Stadt McTavish ich habe Werte von 45.5 und -73.583
Dieser hier funktioniert: http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=45.5,-73.583
Aber wenn ich diese Daten für Google-API, funktioniert es nicht: Siehe: www.google.com/ig/api?weather=,,,45.5,-73.583
Jede Hilfe dankbar. Ich würde es vorziehen, verwenden die Daten von Google zusammengeführt.
Die Google Wetter API wurde stillgelegt im Jahr 2012 -> stackoverflow.com/questions/12145820/google-weather-api-gone/...
InformationsquelleAutor Paul | 2010-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
AKTUALISIERT ANTWORT:
Ich habe gerade bemerkt, einige ANDERE Unregelmäßigkeiten mit Google Wetter API. In JEDEM Fall benötigen Sie 8 numerische Ziffern, zusätzlich zu den negativen Zeichen, wenn es gilt. Sehen Sie den folgenden code-block (Java-basiert) für die richtige Formatierung. (Nicht den perfekten Algorithmus, sondern nur ein schnelles Beispiel, damit Sie sehen können die Ergebnisse)
ORIGINAL-ANTWORT:
Paul, das ist der trick über die Google-Wetter-API ist, dass Sie nicht die Koordinaten, wie erhalten durch traditionelle breiten - /Längengrad. Stattdessen, Sie analysieren die dezimal-Punkte. Darüber hinaus eine "lustige spielerei" von Google Wetter API scheint zu sein, eine Anforderung, die Daten kommen in einem 7 - bis 8-stellige Zeichenfolge. So ist beispielsweise die
45.
5 sollte wirklich45.50000
, und-73.583
sollte wirklich-73.58300
. Diese Länge von 7-8 Ziffern gehören offenbar NICHT die negativen Zeichen (-
) vor jede negative Koordinaten.So, Ihr
45.5(0000)
wird4550000
, und Ihre-73.583(00)
wird-7358300
. So dass die endgültige URL:Beachten Sie, dass wieder, 7-8 Ziffern bedeutet
4550000
oder45500000
akzeptabel wäre, als würde-7358300
oder-73583000
.Ich nur herausgefunden, über die 7-8 stellige Länge, wenn ich sah, Ihre Frage--ich habe versucht, die Eingabe der Daten in meine Wetter-parsing-Programm, und festgestellt, dass
455,-73583
führt nicht richtigen Daten.Beachten Sie, dass dies ist meine inoffizielle Experimente, und nicht durch offizielle Dokumentation, so kann es andere Macken entdeckt zu werden.
lat.replace('.', ''); while(lat.length < 9) { lat = lat.concat('0'); } lat = lat.indexOf('-') !== -1 ? lat.substr(0, 9) : lat.substring(0, 8);
Dies ist nicht korrekt. Miguel Perez Subias gegeben hat, die richtige Antwort. Die letzten 6 Ziffern werden sollte, die Nachkommastellen. Diese Ursache macht Szene. Sie können einfach entfernen Sie die dezimalen und-pad auf der rechten Seite, wie Sie Daten verlieren würde
InformationsquelleAutor Matt D
Es ist viel einfacher - latitude & Längen werden sollte, multipliziert mit einer million
InformationsquelleAutor mdmitry
Meiner Meinung nach Länge eine Breite codiert werden müssen in _e6 format (letzten sechs Ziffern muss der Dezimalwert der die lon/lat-Zeichenfolge übergeben, um die API). Dann müssen Sie sich anpassen, ersten Dezimalstellen, die eine Länge von sechs, fügen Sie
0
s wenn Sie weniger als sechs Dezimalstellen, und Sie befestigen Sie es an 6, wenn Sie mehr haben. Für den int-Teil, wenn Sie nur ein Zeichen, das Sie hinzufügen müssen, eine null zunächst für zwei oder drei Ziffern, die Sie nicht brauchen, etwas zu tun.Beispiele:
Hier haben Sie eine Erklärung mit Beispielen und einer php-Quellcode (der blog ist in Spanisch geschrieben).
InformationsquelleAutor Miguel Perez Subias
Wie Miguel sagte, es ist die letzten 6 Ziffern werden sollte, dass die Nachkommastellen. Also der richtige code ist so einfach wie....
InformationsquelleAutor Paul Johnson