次のようにGoogle Maps Apiを処理するオブジェクトを作成しようとしています:
function GoogleMap(container, mapOptions) {
this.Container = container;
this.Options = mapOptions;
this.Map = new google.maps.Map(document.getElementById(this.Container), this.Options);
// Direction
this.DirectionService = new google.maps.DirectionsService();
this.DirectionRenderer = new google.maps.DirectionsRenderer();
this.DirectionRenderer.setMap(this.Map);
this.DirectionId = 0;
this.DirectionResponse = new Array();
this.DrawDirectionDriving = drawDirectionDriving;
}
drawDirectionDriving 関数は次のようになります。
function drawDirectionDriving(start, end) {
var request = {
origin: start,
destination: end,
travelMode: google.maps.TravelMode.DRIVING
};
this.DirectionService.route(request,
function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
this.DirectionRenderer.setDirections(response);
this.DirectionResponse[this.DirectionId] = response;
this.DirectionId++;
}
else {
alert("Error during drawing direction, Google is not responding...");
}
}
);
}
そしてどこかで、私はこのようなオブジェクトを使用しています:
var myGoogleMap;
function MapInit() {
myGoogleMap = new GoogleMap("divMap", myMapOptions);
myGoogleMap.DrawDirectionDriving("İstanbul", "Ankara");
}
ブラウザに Google マップが表示されます。オブジェクトの作成には問題はありませんが、DrawDirectionDriving 関数でエラーが発生します。
この行にブレークポイントを作成すると: " myGoogleMap.DrawDirectionDriving("イスタンブール", "アンカラ");" 「DirectionRenderer」は構築されているようですが、この行の後 (「Draw」メソッドの後)、DirectionRenderer オブジェクトは null (未定義) のように見えるため、「setDirections プロパティを取得できませんでした。それは null bla bla です...」のようなエラーになります。
手を貸していただけますか?
前もって感謝します...