Я пытаюсь нарисовать линию на карте, используя координаты из запроса API.Вызов API вызывает массив значений точек широты и долготы карты.Я попытался использовать пример для создания линии геоджона на этом веб-сайте: https://www.mapbox.com/mapbox-gl-js/example/geojson-line/, однако этот пример и каждый другой найденный мной пример показывал только добавление слоев на карту, содержащих жестко закодированные координаты, а не координаты, которые будут получены из другого источника.позже.
То, что я первоначально думал, сработает, это просто создайте массив значений lat / long в соответствующем формате, а затем добавьте этот массив равным координатам при добавлении слоя, например:
var lineArray = [];
for(var i = 0; i < response.mapPoints.length; i++)
{
lineArray[i] = " [" + response.mapPoints[i].lng + ", " + response.mapPoints[i].lat + "]";
}
map.addLayer({
"id": "route",
"type": "line",
"source": {
"type": "geojson",
"data": {
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": [
lineArray
]
}
}
},
"layout": {
"line-join": "round",
"line-cap": "round"
},
"paint": {
"line-color": "#888",
"line-width": 8
}
});
LineArray выглядел правильно после распечатки.Мне удалось создать небольшую строку с помощью цикла for и изменить код добавления слоя, чтобы он выглядел следующим образом:
"coordinates": [
[ response.mapPoints[i].lng, response.mapPoints[i].lat ],
[ response.mapPoints[i+1].lng, response.mapPoints[i+1].lat ]
]
, однако это заняло слишком много времени, так как я использую тысячи координат одновременно имне приходится перебирать каждую из них, чтобы нарисовать линию.
Я на правильном пути вообще?Любая помощь или направление к подобному примеру будет принята с благодарностью!