【发布时间】:2013-01-29 23:41:05
【问题描述】:
我的脚本有问题,我想从 pos 函数中获取值 lat,lng,但是当我在控制台中检查元素时,我得到了这个错误:
"Uncaught ReferenceError: lat is not defined TEST.html:30 (匿名函数)"
第 30 行是:var latlng = new google.maps.LatLng (lat, lng); 这是我的完整代码:
<script type="text/javascript">
navigator.geolocation.getCurrentPosition (function (pos){
lat = pos.coords.latitude;
lng = pos.coords.longitude;
});
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
var latlng = new google.maps.LatLng (lat, lng);
var oceanBeach = new google.maps.LatLng(-6.2501199999999999,106.75937);
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var mapOptions = {
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: latlng
}
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
directionsDisplay.setMap(map);
}
function calcRoute() {
var selectedMode = document.getElementById("mode").value;
var request = {
origin: latlng,
destination: oceanBeach,
// Note that Javascript allows us to access the constant
// using square brackets and a string value as its
// "property."
travelMode: google.maps.TravelMode[selectedMode]
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
</script>
【问题讨论】:
-
如果这正是您使用的代码。问题是您的 lat 和 lng 变量是在与您尝试使用它们的上下文不同的上下文中声明的。
-
将
getCurrentPosition后面的代码移动到回调函数中。既然那是你的变量所在的地方,那么使用它们的代码应该在哪里难道没有意义吗?