2015-08-11 4 views
0

Я пытаюсь отобразить маршрут направления на карте google, и моя проблема была, когда я пытаюсь получить маршрут маршрута, который ранее не отображался. Я хочу знать, как я сбросил отображаемый маршрут на карте.Удалить отображаемые маршруты направления на карте google

Здесь мой код.

function direction(dest, lat, lng) { 

$('#direction').slideUp(); 
$('#results').slideDown(); 
$('#dest-direction').val(dest); 


$('#direction-form').submit(function() { 

    var ori = $('#origin-direction').val(); 

    map.setZoom(7); 
    var currentLatLng = new google.maps.LatLng(lat, lng); 
    map.setCenter(currentLatLng); 

    var directionsRenderer = new google.maps.DirectionsRenderer(); 
    directionsRenderer.setMap(map); 
    directionsRenderer.setPanel(document.getElementById('direction')); 

    var directionsService = new google.maps.DirectionsService(); 

    ///////////////////// 
    default_unit_system = google.maps.UnitSystem.METRIC; 
    if (current_unit == "km") { 
     default_unit_system = google.maps.UnitSystem.METRIC; 
    } else if (current_unit == "miles") { 
     default_unit_system = google.maps.UnitSystem.IMPERIAL; 
    } 
    ///////////////////// 

    var request = { 
     origin: ori, 
     destination: lat+','+lng, 
     travelMode: google.maps.DirectionsTravelMode.DRIVING, 
     unitSystem: default_unit_system 
    }; 
    directionsService.route(request, function (response, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 
      directionsRenderer.setDirections(response); 
     } else { 
      //alert('Error: ' + status); 
      $('#direction').append('<table width="100%"><tr><td>Direction not found. Please try again.</td></tr></table>'); 
     } 
    }); 

    $('#direction-form').nextAll().remove(); 
    return false; 

}); 

} 
+0

Просьба представить [Минимальный, завершенный, проверенный и читаемый пример] (http://stackoverflow.com/help/mcve), который демонстрирует проблему. – geocodezip

ответ

2

Я согласен с Dr.Molle.

Тем не менее, одна вещь, которая может быть полезна для многих наложений (например, маркеров, например, infowindows, ...): Храните объекты в массиве; если необходимо, сохраните этот массив в глобальной области; , то вы можете легко удалить их с карты.

var renderObjects = []; 

function clearRenderObjects() { 
    for(var i in renderObjects) { 
    renderObjects[i].setMap(null); 
    } 
} 

$('#direction-form').submit(function() { 
    // clear previous 
    clearRenderObjects(); 
    ... 
    var directionsRenderer = new google.maps.DirectionsRenderer(); 
    directionsRenderer.setMap(map); 
    // add to the array 
    renderObjects.push(directionsRenderer); 
    ... 
}); 
3

Используйте тот же DirectionsRenderer-экземпляр для всех запросов (в настоящее время создается новый экземпляр на каждый запрос)

Смежные вопросы