【问题标题】:Google Maps Marker Drag End Directions - Clear Previous Route谷歌地图标记拖动结束方向 - 清除以前的路线
【发布时间】:2011-12-05 07:24:34
【问题描述】:

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

有人知道如何清除原始路线吗?

【问题讨论】:

    标签: google-maps-api-3


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      相关资源
      最近更新 更多