2017-03-05 2 views
-1

Hier ist meine Funktion:HTML/JavaScript Geo Lage undefined

function getLocation() {   
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(function (position) {     
     var initialLocation = { 
      lat: position.coords.latitude, 
      lng: position.coords.longitude 
     };    
     map.setCenter(initialLocation); 
     }); 
     var mapProp= {  
     zoom:12,  
     };   

     map=new google.maps.Map(document.getElementById("googleMap"),mapProp);   
     infowindow = new google.maps.InfoWindow();        
     var pyr = new google.maps.LatLng(initialLocation); 
     var request = {    
     location: pyr,   
     radius: '49999',   
     query: 'gym'    
     };     
     var service = new google.maps.places.PlacesService(map);    
     service.textSearch(request, callback); 
    } 
} 

Ich möchte am Standort des Benutzers die Karte zum Zentrum (das funktioniert) und dann möchte ich eine Suche nach in der Nähe Fitness-Studios zu tun und sie als Marker angezeigt werden .

Ich zentriere die Karte mit map.setCenter(initialLocation);. Und ich versuche, den Standort für eine Suche festlegen, indem Sie mit

var pyr = new google.maps.LatLng(initialLocation); 
location: pyr 

oder

var pyr = initialLocation; 
location: pyr 

Beide scheitern, und wenn ich initialLocation Ausdrucken gibt es nicht definiert, trotz der Karte richtig, um es zu zentrieren. Hilfe?

Antwort

0

Der Geolocation-Dienst ist asynchron, Sie müssen den zurückgegebenen Wert verwenden, um die Suche in der Callback-Funktion durchzuführen, wenn/wo sie verfügbar ist.

function getLocation() {   
    if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function (position) {     
     var initialLocation = { 
     lat: position.coords.latitude, 
     lng: position.coords.longitude 
     };    
     map.setCenter(initialLocation); 
     var service = new google.maps.places.PlacesService(map);  
     var pyr = initialLocation; 
    var request = {    
     location: pyr,   
     radius: '49999',   
     query: 'gym'    
    };     
    service.textSearch(request, callback); 
    }); 
    var mapProp= {  
    zoom:12,  
    };   

    map=new google.maps.Map(document.getElementById("googleMap"),mapProp);   
    infowindow = new google.maps.InfoWindow();        
}