Невозможно получить доступ к переменной из области видимости функции

У меня есть этот скрипт для создания карт google с шаблоном маркеров внутри моего проекта Django:

<script>
  function initMap() {

    const shop = {
      lat: 45.0203018,
      lng: -88.318316
    };

    const map = new google.maps.Map(
      document.getElementById("map"), {
        zoom: 10,
        center: shop,
    });  
  
    const vehicles = {{ vehicles|safe }};
    for(i = 0; i < vehicles.length; i++){
      const pos = new google.maps.LatLng(vehicles[i]['lat'],vehicles[i]['lon']);
      const marker = new google.maps.Marker({
        position: pos,
        map: map,
        label: vehicles[i]['number'],
      }); 
    
      const id = vehicles[i]['truck']     
      marker.addListener("click", () => {
        console.log(id)
        window.location = "{% url 'invent:truck' id %}";
      });  
    };   
  };

  window.initMap = initMap;
</script>

Но он не видит переменную id внутри функции addListener. А если я помещаю переменную внутрь функции, то она не видит переменную vehicles. Что я делаю не так?

Разобрался:

const id = vehicles[i]['truck']
const url = "{% url 'invent:truck' 1234 %}".replace(/1234/, id.toString());
marker.addListener("click", () => {
  window.location = url
});  
Вернуться на верх