2013-04-08 5 views
3

J'essaie de centrer ma position actuelle dans Google Maps. Cela va centrer un emplacement avec une variable de latitude et de longitude spécifique.Comment centrer ma position actuelle? (Google Maps)

var coords = new google.maps.LatLng(62.39081100, 17.30692700); 

Mais j'ai essayé de saisir l'emplacement des utilisateurs avec cette fonction:

function grabMyPosition() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(centerMe); 
    } else { 
     alert("You don't support this"); 
    } 
} 
function centerMe(center) { 
    var me_location = { 
     lat: position.coords.latitude, 
     lon: position.coords.longitude 
    }; 
} 

Et faites ceci:

var coords = new google.maps.LatLng(me_location.lat, me_location.lon); 

Mais je reçois ceci:

Uncaught TypeError: Cannot read property 'lat' of undefined 

C'est parce que je stocke et remplis est la variable "me_location" dans une fonction. Comment puis-je le rendre "global" afin qu'il puisse être utilisé en dehors de ma fonction?

+1

'me_location' n'est pas accessible de la fonction' CenterMe' extérieur .. – fernandosavio

+0

que je pensais , mais comment "contourner" ce problème? – Jack

+0

Vous renvoyez l'objet à la fin de la fonction et appelez 'navigator.geolocation.getCurrentPosition (centerMe());' à la place. – Blazemonger

Répondre

7
function grabMyPosition() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(centerMe); 
    } else { 
     alert("You don't support this"); 
    } 
} 
function centerMe(position) { 
    var coords = new google.maps.LatLng(
     position.coords.latitude, 
     position.coords.longitude 
    ); 

    map.setCenter(coords); 
    // or 
    map.panTo(coords); 
} 

Supposant votre variable map est globale ..

+0

Merci l'homme, sauveteur! – Jack

2

vous ne retournez pas une valeur de la fonction centerMe

Questions connexes