2010-08-18 43 views
9

Estoy actualizando algunos códigos anteriores que usaban la API v2 para Google Maps. En domready, sería utilizar una declaración comoGoogle Maps API v3 BrowserIsCompatible

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

Ahora que estoy cargando la versión 3 del API de Google Maps, me sale un error

google.maps.BrowserIsCompatible no es una función

He leído un montón de temas en los grupos de la API de Google v3, pero no he encontrado una respuesta clara de cómo se llama la nueva función ni cómo hacer referencia a ella.

Respuesta

6

GBrowserIsCompatibile no entró en la versión tres API, por lo que tendrá que write this code yourself.

Here is a list de los navegadores compatibles con v3.

+0

gracias cannonade! Parece extraño que lo descarten, pero estoy seguro de que tenían una buena razón. – julio

+0

@julio Sí, no estoy seguro de eso. Quitaron algunas cosas que no eran la funcionalidad de mapas básicos de v3 (como las cosas de la envoltura de solicitudes de Http). Tengo un amigo en Google, se lo preguntaré la próxima vez que la vea :). – RedBlueThing

+0

la lista no es del todo correcta, ** google api v3 parece funcionar en IE 6.0. ** – TMS

0

No existe un equivalente de este método en V3 as of Google's V2 to V3 migration doc.

En cambio, una forma eficaz de lograr esta prueba es:

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

Eso es porque todo el browsers that Google Maps API V3 support cuota de esa misma particularidad: son las primeras versiones (por su proveedor) que apoya JSON nativa. Ver este screenshot taken from caniuse.com:

enter image description here

Excepciones:

Firefox 3.0 y BlackBerry Browser 6 no son compatibles con JSON, pero son compatibles con la API de Google Maps. Así que la regla anterior se excluye tanto, lo que es una desventaja aceptable para una prueba tan sencilla (en comparación con un código de usuario-agente-oler-based)

Aviso:

esta prueba no se aplica a 'Google el objeto .maps pero en el tiempo de carga del script. Esto evita casos (por ej. IE6) cuando el script se carga con éxito pero el objeto 'google.maps' no se puede usar.

Cuestiones relacionadas