在通过Qt小部件上显示的谷歌地图点击产生的屏幕坐标后,路线不会显示

时间:2011-06-04 08:55:01

标签: google-maps google-maps-api-3 routes qwebview

我正在使用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 函数时,警报会正确显示。但就是这样,路线会显示 NOT !未显示 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 个答案:

答案 0 :(得分:1)

我在 &lt; 中包含了一些值脚本src&gt; ,不知道它们是什么

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

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