2010-08-18 2 views
9

Ich aktualisiere älteren Code, der die v2-API für Google Maps verwendet. Auf domready, wäre es eine Aussage wieGoogle Maps API v3 BrowserIsCompatible

if(google.maps.BrowserIsCompatible()){ 
// load the map 
} 

nun mit, dass ich den Google Maps API v3 bin Laden, erhalte ich einen Fehler

google.maps.BrowserIsCompatible keine Funktion ist

Ich habe eine Menge Threads in den Google v3 API-Gruppen gelesen, aber keine klare Antwort gefunden, wie die neue Funktion aufgerufen wird oder wie sie referenziert wird.

Antwort

6

GBrowserIsCompatibility hat es nicht in die Version drei API geschafft, so müssen Sie write this code yourself.

Here is a list der von v3 unterstützten Browser.

+0

Dank Kanonade! Es ist merkwürdig, dass sie das fallen lassen würden, aber ich bin mir sicher, dass sie einen guten Grund hatten. – julio

+0

@julio Ja, da bin ich mir nicht sicher. Sie entfernten ein paar Dinge, die keine Core-Maps-Funktionalität von v3 waren (wie das Wrapper-Zeug der Http-Anfrage). Ich habe einen Freund bei Google, ich werde sie das nächste Mal fragen, wenn ich sie sehe :). – RedBlueThing

+0

die Liste ist nicht ganz korrekt - ** Google API v3 scheint in IE 6.0 zu arbeiten. ** – TMS

0

Es gibt keine Entsprechung dieser Methode in V3 as of Google's V2 to V3 migration doc.

Stattdessen eine effiziente Möglichkeit, diesen Test zu erreichen ist:

if (window.JSON) { 
    // load google maps api async (so google.maps object is available for further use) 
} 

Das ist, weil alle browsers that Google Maps API V3 support Aktien, die gleiche Besonderheit: sie sind die ersten Versionen (von ihren Lieferanten), dass JSON unterstützt nativ. Sehen Sie diese screenshot taken from caniuse.com:

enter image description here

Ausnahmen:

Firefox 3.0 und Blackberry Browser 6 nicht JSON unterstützen, sondern werden von Google Maps API unterstützt. So über die Regel ausschließen beide, was ein akzeptabler Nachteil für einen solchen einfachen Test ist (im Vergleich zu einem User-Agent-Sniffing-basierten Code)

Hinweis:

dieser Test gilt nicht für ‚google .maps 'Objekt, aber zum Laden des Skripts. Dies verhindert Fälle (z. B. IE6), wenn das Skript erfolgreich geladen wurde, aber das Objekt 'google.maps' nicht verwendbar ist.