1

我正在使用 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
                                            });
                                    }
                                }
                            });
    }
4

1 回答 1

1

我在<script src>中包含了一些值,但不知道它们是什么

: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>

将其更改回正常显示路线!

于 2011-06-04T09:36:40.343 回答