2017-03-05 53 views
-1

这里是我的功能:HTML/JavaScript的地缘位置不确定

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); 
    } 
} 

我想中心在用户的位置(工作)的地图,然后我想做附近的健身房搜索并显示它们作为标记。

我使用map.setCenter(initialLocation);将地图居中。我试图通过使用

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

var pyr = initialLocation; 
location: pyr 

均不能设置一个搜索位置,如果我打印出initialLocation,它给未定义尽管地图正确定心它。帮帮我?

回答

0

地理定位服务是异步的,您需要使用返回的值在回调函数中进行搜索,何时/何处可用。

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();        
}