2010-08-18 9 views
9

Je suis en train de mettre à jour du code ancien utilisant l'API v2 pour Google Maps. Sur domready, il utiliserait une déclaration commeAPI Google Maps v3 BrowserIsCompatible

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

Maintenant que je charge l'API Google Maps v3, je reçois une erreur

google.maps.BrowserIsCompatible est pas une fonction

J'ai lu une tonne de discussions dans les groupes api de Google v3, mais je n'ai pas trouvé de réponse claire à propos de ce que la nouvelle fonction appelle ou comment la référencer.

Répondre

6

GBrowserIsCompatibile ne l'a pas intégré dans l'API de la version trois, vous devrez donc write this code yourself.

Here is a list des navigateurs pris en charge par v3.

+0

merci canonnade! Il semble étrange qu'ils laissent tomber mais je suis sûr qu'ils avaient une bonne raison. – julio

+0

@julio Ouais je ne suis pas sûr de ça. Ils ont supprimé un certain nombre de choses qui n'étaient pas des fonctionnalités de cartes principales de la v3 (comme les trucs de l'encapsuleur de requêtes Http). J'ai un ami chez Google, je lui demanderai la prochaine fois que je la verrai :). – RedBlueThing

+0

la liste n'est pas tout à fait correcte - ** google api v3 semble fonctionner dans IE 6.0. ** – TMS

0

Il n'y a aucun équivalent de cette méthode dans V3 as of Google's V2 to V3 migration doc.

Au lieu de cela, un moyen efficace de réaliser ce test est:

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

C'est parce que toute la part browsers that Google Maps API V3 support cette même particularité: ils sont les premières versions (par leur fournisseur) qui prend en charge JSON natif. Voir cette screenshot taken from caniuse.com:

enter image description here

Exceptions:

Firefox 3.0 et BlackBerry Browser 6 ne prennent pas en charge JSON, mais sont pris en charge par l'API Google Maps. Ainsi, la règle ci-dessus excluent les deux, ce qui est un inconvénient acceptable pour un tel test simple (par rapport à un code à base d'agents renifleurs utilisateur)

Avis:

ce test ne concerne pas Google objet .maps mais au moment du chargement du script. Cela évite des cas (par exemple IE6) lorsque le script est chargé avec succès mais que l'objet 'google.maps' est inutilisable.

Questions connexes