Маршрут не отображается, после прохождения его экранные координаты, возникающие в результате кликов на карте Google, отображаемых в виджете Qt - PullRequest
1 голос
/ 04 июня 2011

И я использую 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
                                            });
                                    }
                                }
                            });
    }

1 Ответ

1 голос
/ 04 июня 2011

Я включил некоторые значения в , не зная, что они

: banghead :: banghead :: banghead:

Оригинал был:

<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>

Я изменил его на:

<script src="http://maps.google.com/maps/api/js?v=3.1&sensor=true" type="text/javascript"></script>

Если вернуться к обычному режиму, отображается маршрут!

...