Google地图标记拖动结束路线 - 清除上一条路线

时间:2011-12-05 07:24:34

标签: google-maps-api-3

我正在使用Google Maps API v3,并且我已经实现了基于标记拖动结束函数渲染的方向。但是,如果再次拖动标记,则不会删除原始方向集。

地图是根据地理编码请求和源自动填充文本框生成的,目标是静态的。一切正常。我已阅读API文档,并说它使用.setMap(null);选项,但它没有清除方向,我相信这是因为我没有重新生成地图。我的方向呈现代码如下:

google.maps.event.addListener(markersrc, 'dragend', function () {
    geocoder.geocode({ 'latLng': markersrc.getPosition() }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var request = {
                origin: markersrc.getPosition(),
                destination: markerdst.getPosition(),
                travelMode: google.maps.DirectionsTravelMode.DRIVING
            };
            var directionsDisplay = new google.maps.DirectionsRenderer();
            var directionsService = new google.maps.DirectionsService();
            directionsDisplay.suppressMarkers = true;
            directionsDisplay.setMap(map);
            directionsDisplay.setPanel(document.getElementById("directions_panel"));
            directionsService.route(request, function (response, status) {
                if (status == google.maps.DirectionsStatus.OK) {
                    directionsDisplay.setDirections(response);
                }
            });
        }
    });
});

任何人都知道如何清除原始路线?

1 个答案:

答案 0 :(得分:1)

在我看来,每次拖动标记时,都会重新创建DirectionsDisplay和DirectionsService。相反,我认为您需要将它们创建为全局变量,这些变量仅由dragend事件侦听器更新。