2012-03-28 8 views
0

Diese Frage wurde bereits beantwortet. Ich habe entdeckt, was das Problem ist. Aber ich poste das Q & A hier, weil andere in derselben misslichen Lage sein können.Google Maps V3 wird nicht geladen (Asked & Beantwortet)

Mein Google Map Code stammt aus Beispielen, die ich im Internet gefunden habe.

In dem "schlechten" Code gab es eine Linie, die wie folgt aussah:

var latlng= new google.maps.LatLng(results[0].geometry.location.Ua, results[0].geometry.location.Va); 

Dieser Code bis gestern Abend gearbeitet. Mit Firebug, um die Objekte zu überprüfen, stellt sich heraus, dass dieser Ort nun das folgende Format hat: {Ta: Nummer, Ua: Nummer}

Meine sofortige Lösung war die Verwendung der Methoden lat() und lng() wann immer ich benötigte der lat und/oder lng.

Die andere Lösung bestand darin, meine Karte in einer intelligenteren Weise zu instanziieren.

Ja, es war albern auf Eigenschaften verlassen, die tief in einem Objekt unter Verwendung des Firebug-Inspektors entdeckt wurden. Ja, ein Google Maps Noob zu sein und sich auf Copy Paste mit wenig oder gar keinem Wissen zu verlassen, erntete nur Belohnungen.

Aber eine schnelle Google-Suche fand viele Leute (außer der "Probe", die ich von geliehen) auch mit der .Va-Eigenschaft direkt.

Daher die Post hier für den Fall, dass dies auch ihr Problem ist.

+0

Wenn es beantwortet wurde, dann würden die Leute es dadurch finden, keine Notwendigkeit, dies zu tun. Sie können eine Löschung beantragen, die Ihren Ruf meiner Meinung nach nicht beeinträchtigt, oder andere werden sie sowieso löschen.:) – Grigor

+0

Stack Overflow ist eine Q & A-Site, kein Diskussionsforum. Fühlen Sie sich frei, Ihre Frage in eine echte Frage zu bearbeiten und selbst eine Antwort zu geben. Aber so wie es aussieht, ist es keine wirkliche Frage und wird wahrscheinlich als solche geschlossen sein. – NullUserException

+0

Ich habe versucht, den Rat auf http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/ zu folgen und diese Frage zu stellen. Vielleicht ist dieser Ansatz aus der Mode gekommen. – Claude

Antwort

2

Wenn Sie interessiert sind warum das passiert ist, ist es einfach: das Beispiel verwendet undokumentierte Interna der API, so als Google die Maps JS-Datei aktualisiert, brach es.

Genauer gesagt, Ua und Va wurden automatisch generierte Variablennamen aus minification. Es sieht so aus, als ob Google eine Variable in der ursprünglichen Quelle entfernt und die Labels nach oben verschoben haben (Ua, VaTa, Ua).

Ich wette ich weiß genau, wie der Autor der schlechten Probe mit seinem Code kam. Er inspizierte eine LatLng (die Art von Objekt in location in Ihrem Beispiel) in den Dev Tools seines Browsers, sah, dass diese zwei seltsam benannten Variablen die Daten enthielten, die er wollte, und ging einfach damit. Da die Methoden lat und lng in LatLng "versteckt" sind, bemerkte er sie nicht.

Es gibt zwei Lektionen hier gelernt werden:

  1. immer documented API methods verwenden; Alles andere ist ein Implementierungsdetail, das sich ändern kann.
  2. Glauben Sie nicht, der Code auf der Website eines Kindes ist ein gut oder sogar kompetentes Beispiel, wie man Dinge macht. Dies gilt insbesondere für Google Maps, wo es umfangreiche Dokumentationen und offizielle Beispiele gibt.
+0

Duh ..... Zeigt, wie neu ich bin. Niemals einmal über die Minification nachgedacht. Danke, dass Sie sich die Zeit genommen haben, die Erklärung zu geben. – Claude