2016-03-02 61 views
-1

我試圖使用geolocations API與路線服務,但我得到:HTML 5地理位置不與路線API工作

var UserLoc; 
if (navigator.geolocation) {           
    navigator.geolocation.getCurrentPosition(function(position) { 
     var lat=position.coords.latitude; 
     var lng=position.coords.longitude; 
     console.log(lat); 
     console.log(lng); 
UserLoc = new google.maps.LatLng(lat,lng);  
var NewMarker = new google.maps.Marker({ 
position: UserLoc, 
draggable: false, 
animation: google.maps.Animation.DROP, 
map: SEVTmap 
}); 
    } 

    );   
} 
else { 
    alert ("Възникна проблем при намирането на местонахождението ви!"); 
} 

var directionsService = new google.maps.DirectionsService(); 
var directionsDisplay = new google.maps.DirectionsRenderer(); 

directionsDisplay.setMap(SEVTmap); 

var request = { 
    origin: UserLoc, 
    destination: Destination, 
    travelMode: google.maps.DirectionsTravelMode.DRIVING 
}; 

directionsService.route(request, function (response, status) { 
    if (status == google.maps.DirectionsStatus.OK) { 
    directionsDisplay.setDirections(response); 
    } 
}); 

錯誤:InvalidValueError:物業產地:不是字符串;而不是LatLng或LatLngLiteral:不是對象;而不是一個對象

標記被創建;

+1

地理定位服務是異步的,你必須在使用該結果在其回調函數/它在哪裏可用。 – geocodezip

回答

1

地理定位服務是異步的,你必須使用該結果在其回調函數何時/何地它是可

var UserLoc; 
if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
    var lat = position.coords.latitude; 
    var lng = position.coords.longitude; 
    console.log(lat); 
    console.log(lng); 
    UserLoc = new google.maps.LatLng(lat, lng); 
    var NewMarker = new google.maps.Marker({ 
     position: UserLoc, 
     draggable: false, 
     animation: google.maps.Animation.DROP, 
     map: SEVTmap 
    }); 

    var directionsService = new google.maps.DirectionsService(); 
    var directionsDisplay = new google.maps.DirectionsRenderer({ 
     map: SEVTmap 
    }); 

    directionsDisplay.setMap(SEVTmap); 

    var request = { 
     origin: UserLoc, 
     destination: Destination, 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }; 

    directionsService.route(request, function(response, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 
     directionsDisplay.setDirections(response); 
     } 
    }); 
    }, function (PositionError) {alert("geolocation error:"+PositionError.code+" msg="+PositionError.message);}); 
} else { 
    alert("Възникна проблем при намирането на местонахождението ви!"); 
}