我正在使用Google地图,我正在尝试访问函数内的变量,但我不知道如何。
if(navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
// map.setCenter(initialLocation);
markerL = new google.maps.Marker({
position: initialLocation,
map: map,
title: "You are Here",
});
markerL.setMap(map);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
}
我想在这里访问initalLocation
var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById('panel'));
var request = {
origin: window.initialLocation,
destination: 'london',
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
Firebug告诉我initalLocation未定义。 有什么想法吗?
干杯
答案 0 :(得分:0)
尝试设置如下值:
window.initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
即。始终使用window.
前缀。
请注意,使用window对象保存全局变量不是最好的编程习惯。如果您的脚本很小,那就没关系。
答案 1 :(得分:0)
geolocation.getCurrentPosition()
的回调将被异步调用,因此在执行回调之前无法访问该变量。
解决方案:在getCurrentPosition()