И я использую Qt, поэтому карта отображается в виджете.
Глобальные переменные:
var arrayMarkers = new Array();
var arrayIndex = 0;
Эта функция «вызывается», а также «отображает» маркеры на карте, где я нажимаю. Также он должным образом вызывает функцию displayRoute , когда я нажимаю второй раз.
function Open (x, y)
{
google.maps.event.addListener (map, "click",
function (event)
{
alert("You clicked the map."+ event.latLng.toString(4));
arrayMarkers [arrayIndex] = event.latLng;
var point1 = new google.maps.Marker ({
position:arrayMarkers [arrayIndex],
draggable:false,
map:map,
flat:true
});
if (arrayIndex == 1)
{
displayRoute();
}
arrayIndex++;
});
}
Предупреждение отображается правильно, когда вызывается следующая функция displayRoute . Но это все, маршрут отображает НЕ ! Предупреждение при вызове directionsService.route НЕ отображается, это означает, что функция directionsService.route не вызывается? Что делать? Пожалуйста, помогите.
function displayRoute ()
{
alert ("displayRoute");
var start = arrayMarkers [0];
var end = arrayMarkers [1];
var request = {
origin:start,
destination:end,
travelMode:google.maps.TravelMode.DRIVING
};
directionsService.route (request,
function (result, status)
{
alert(status);
if (status == google.maps.DirectionsStatus.OK)
{
directionsDisplay.setDirections (result);
pointsArray = result.routes[0].overview_path;
var j = 0;
for (j = 0; j < 49; j++)
{
var point1 = new google.maps.Marker ({
position:pointsArray[j],
draggable:true,
map:map,
flat:true
});
}
}
});
}