Я могу вернуть массив собственной страницы json с помощью функции getvals () ниже.К сожалению, я не могу найти, как редактировать полученное значение и как его вернуть.
Я впервые использую JavaScript, поэтому потерпите меня, пожалуйста :)
function getvals(){
return fetch('http://127.0.0.1:5000/mysteps/default',
{
method: "GET",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
})
.then((response) => response.json())
.then((responseData) => {
return responseData;
})
.catch(error => console.warn(error));
}
Полученное значение выглядит следующим образом:
{
"mysteps": [
{
"destination": "Death Valley, CA, USA",
"duration_text": "2 hours 43 mins",
"id": 4,
"km": 249.0,
"origin": "Bishop, CA, USA",
"route_data": "[[-120.483008, 37.303716], [-120.483008, 37.303716]]"
},
{
"destination": "merced",
"duration_text": "2 hours 9 mins",
"id": 5,
"km": 210.6,
"origin": "San Francisco, CA, USA",
"route_data": "[[-118.399663, 37.361368], [-118.399334, 37.36137],
[-118.398783, 37.361372], [-118.398282, 37.361379],...
Я создал код для редактирования данных так, как я хочу, IE Добавляю каждый маршрут друг к другу, чтобы сформировать маршрут, но я не могу его использовать:
fetch('/mysteps/' + mysavedtrip).then(function(response) {
response.json().then(function(data) {
let optionHTML2 = '';
for (let mystep of data.mysteps) {
optionHTML2 += mystep.route_data.replace(/^\[([\s\S]*)]$/, "$1") + ', '
}
optionHTML2 = optionHTML2.slice(0,-2);
optionHTML2 = "[" + optionHTML2 + "]";
state_select2.innerHTML = optionHTML2;
});
});
Я могу отобразить optionHTML2 и увидеть, что это вывод, который я хочу, но я хочу назначить optionHTML2 в качестве переменной, которая будет передавать карту в "getcoordidnates"
map.on('load', function () {
map.addLayer({
"id": "route",
"type": "line",
"source": {
"type": "geojson",
"data": {
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": getcoordinates
}
}
},
"layout": {
"line-join": "round",
"line-cap": "round"
},
"paint": {
"line-color": "#888",
"line-width": 3
}
});
});
Есть ли способ сделать это?