【问题标题】:Google Maps v3 directionsRenderer.setMap(null) not working to clear previous directions谷歌地图 v3 方向Renderer.setMap(null) 无法清除以前的方向
【发布时间】:2013-05-21 09:04:22
【问题描述】:

我正在尝试从 Google 地图中清除之前的路线。但是,当您进行另一次搜索时,前一次搜索中的折线和标记仍会显示。我尝试过使用directionsRenderer.setMap(null),但它没有任何区别。任何想法我做错了什么?

(function () {    
    Maps.Directions = function(googleMap, data, options) {
        var directionsService = new google.maps.DirectionsService(),
            directionsRenderer = new google.maps.DirectionsRenderer();

        function getDirections() {
            directionsService.route(data.request, function(response, status) {
                if (status === google.maps.DirectionsStatus.OK) {
                    directionsRenderer.setDirections(response);
                }
            });
        }
        directionsRenderer.setMap(null);
        directionsRenderer.setMap(googleMap);
        getDirections();
    };
})();

【问题讨论】:

    标签: javascript google-maps google-maps-api-3


    【解决方案1】:

    这是因为您在每次调用函数时都初始化了一个新的directionsRenderer

    使方向渲染器更加全球化。先是setMap(null),然后是初始化,然后是setMap(googleMap)

    像这样:

    (function () {   
        var directionsRenderer;
        Maps.Directions = function(googleMap, data, options) {
            if(directionsRenderer){
                directionsRenderer.setMap(null);
            }
            var directionsService = new google.maps.DirectionsService();
    
            directionsRenderer = new google.maps.DirectionsRenderer();
            function getDirections() {
                directionsService.route(data.request, function(response, status) {
                    if (status === google.maps.DirectionsStatus.OK) {
                        directionsRenderer.setDirections(response);
                    }
                });
            }
    
            directionsRenderer.setMap(googleMap);
            getDirections();
        };
    })();
    

    【讨论】:

    • 如果你想同时在屏幕上显示多条路线,有没有办法在绘制完全相同的路线之前检查路线是否已经存在?
    • 对我有用的是以下评论initializing a new directionsRenderer in every call of the function。谢谢!
    • 在 Angular 项目中获取地图未定义错误。任何帮助都会很明显。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多