2012-02-24 19 views
7

Sto cercando di utilizzare le Google Maps API v3 ma ho sempre un erroreGoogle maps api v3 DrawingManager nessun lavoro

ho aggiunto lo script nella pagina:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing"></script> 

e ho implementato:

var drawingManager = new google.maps.drawing.DrawingManager({ 
     drawingMode: google.maps.drawing.OverlayType.MARKER, 
     drawingControl: true, 
     drawingControlOptions: { 
     position: google.maps.ControlPosition.TOP_CENTER, 
     drawingModes: [google.maps.drawing.OverlayType.MARKER, google.maps.drawing.OverlayType.CIRCLE] 
     }, 
     /*markerOptions: { 
     icon: new google.maps.MarkerImage('http://www.example.com/icon.png') 
     },*/ 
     circleOptions: { 
     fillColor: '#ffff00', 
     fillOpacity: 1, 
     strokeWeight: 5, 
     clickable: false, 
     zIndex: 1, 
     editable: true 
     } 

ho ottenuto lo stesso errore sempre:

Uncaught TypeError: Cannot read property 'DrawingManager' of undefined

risposta

0

A parte il tuo codice di esempio non completo (credo che ti sia appena mancata la parentesi di chiusura quando l'hai copiato), non vedo nulla di ovvio. Non ho usato la libreria Disegno, ma sembra che tu stia seguendo correttamente la documentazione. Direi di usare Firebug per controllare che cosa viene caricato Javascript da Google e vedere se menziona qualcosa sulla classe DrawingManager.

9

Ho ricevuto lo stesso errore e l'ho capito. Utilizzare 'https' invece di 'http' ...

< script type="text/javascript" 
src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing"> 
</script> 
+0

Sarebbe bello se si potesse fornire una spiegazione pure. – asheeshr

12

'I concetti all'interno di questo documento fare riferimento a funzionalità disponibili solo all'interno della libreria google.maps.drawing. Questa libreria non è caricato di default quando si carica l'API Maps Javascript, ma deve essere specificato esplicitamente attraverso l'uso di un librerie parametro di bootstrap: '

http://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing

+0

Risposta rapida. Google è intelligente e facile da usare. Grazie – M98

0

tenta di aggiungere

}); 

alla fine .

spero che sia d'aiuto.

1

Sembra che il codice venga eseguito prima che la libreria sia caricata. Se si sta caricando in modo asincrono, è necessario includere la libreria nella stessa chiamata API che specifica un callback alla funzione di inizializzazione della mappa (che presumibilmente include/chiama il proprio frammento di codice). Se la funzione di inizializzazione viene chiamata initMap quindi fare questo:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY?libraries=drawing&callback=initMap"></script>

ho ottenuto lo stesso errore di avere 2 tag script; uno che carica la libreria dei disegni (come il tuo, senza callback) e un altro con solo il callback. Ho riparato dopo che Google ha gentilmente ha scritto quanto segue nella mia console

You have included the Google Maps API multiple times on this page. This may cause unexpected errors.

Problemi correlati