В коде я обнаружил много проблем, но короче говоря, источник, который вы создаете, создан неправильно. Чтобы упростить объяснение, мне пришлось удалить двойник для l oop и вызов службы, чтобы показать вам, как вы должны создать источник для пути.
Я сформировал это скрипт, создающий путь в Портленде .
введите описание изображения здесь
Вот соответствующий js код для слоя, который вы должны создать:
map.addLayer({
id: 'route',
type: 'line',
source: {
'type': 'geojson',
'data': {
'type': 'Feature',
'properties': {},
'geometry': {
'type': 'LineString',
'coordinates': [
[
-122.68035572839027,
45.52729517240144
],
[
-122.67657260381876,
45.527330174436116
],
[
-122.67657129671815,
45.52666556739695
],
[
-122.67085005715236,
45.52677044480427
],
[
-122.66645605237485,
45.52862702776275
],
[
-122.66560830926798,
45.52866212597536
],
[
-122.66532421497476,
45.52712020010674
],
[
-122.6654770006126,
45.52158881104725
],
[
-122.66684678096325,
45.51749007039993
]
],
},
}
},
layout: {
'line-join': 'round',
'line-cap': 'round'
},
paint: {
'line-color': '#888',
'line-width': 8
}
})
Теперь, зная, как этот слой должен быть создан, вы наверняка можете вернуть свой циклы и вызов службы, но пока вы выполняете двойной цикл, вы будете создавать слой на l oop, что определенно НЕ желательно и не рекомендуется.
Я также отметил координаты вашего geo json source повторяется, и координаты не соответствуют указанным местам, но я проигнорировал их для образца в скрипке.
Если этот ответ решает ваш вопрос о как добавить маршрут между несколькими маркерами , отметьте его как ответ принят , таким образом, это также поможет другим пользователям узнать, что это было правильное решение