私はC++プログラマーなので、Javaスクリプトの次の未定義の変数エラーは私には奇妙です。グローバル変数を定義しましdirectionResult
た。次のコードはその値を初期化します。
function calcRoute() {
var iMap = {
departure:"tiran,esfahan",
destination:"esfahan"
}
var request = {
origin : iMap.departure,
destination : iMap.destination,
travelMode : google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
document.getElementById("log").innerHTML = result.routes[0];
directionResult = result;
}
});
}
最後に、コールバック関数のパラメータであるifdirectionResult
に等しくなります。result
しかし、別の関数では:
function showSteps() {
var myRoute = directionResult.routes[0].legs[0];
var point = myRoute.steps[index].start_point;
var inst = myRoute.steps[index++].instructions;
obj.setPosition(point);
document.getElementById('inst').innerHTML = inst;
map.panTo(point);
if (index >= myRoute.steps.length)
clearInterval(timer);
}
最初の行で使用したいときdirectionResult
、私はこのエラーに遭遇します:
TypeError:directionResultは未定義です
どうすればこの奇妙な振る舞いを解決できますか?ありがとうございます。