MapboxDirections устанавливает источник и пункт назначения динамически - PullRequest
0 голосов
/ 19 апреля 2020

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

setOrigin() и setDestination() отлично работает при вызове при загрузке карты:

var directions = new MapboxDirections({
        accessToken: mapboxgl.accessToken
    });

map.addControl(directions,'top-left');

map.on('load',  function() {
    directions.setOrigin([12, 23]);
    directions.setDestinaion([11, 22]);
})

Но когда я вызываю его позже, например, на карте moveend, поле ввода источника пытается определить местоположение навсегда, и я получаю бесконечное значение l oop (в исходном вводе есть значок загрузки, и консоль печатает журналы от moveend функция навсегда)

РЕДАКТИРОВАТЬ: добавлено больше информации

Мой фрагмент кода

    mymap.on('moveend', async function () {
        if (old_zoom === mymap.getZoom()) {
            let coords = mymap.getCenter();
            console.log(coords);  // it is printed inifnitely, until Chrome crashes

            directions.setOrigin('19.969415,50.061824');
            directions.setDestination('19.9242978306511,50.0401092');
    });

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

Так что я думаю, что решение здесь будет заключаться в остановке MapboxDirections от перемещения моей карты при создании маршрута, потому что моя концепция заключается в setOrigin() каждый раз, когда пользователь прекращает перемещение карты (исходная точка всегда находится в центре карты)

...