Я создал веб-страницу, где пользователи могут вводить названия разных городов в текстовое поле.
Я также создал массив JSON, в котором перечислены 63 конкретных города в соответствии с конкретными требованиями, которым они должны соответствовать, и я назову это файлом JSON (1). Для удобства перечислим только первые два элемента:
{
"tappe": [
{
"name": "Tappa22 - Passo della Cisa - Pontremoli",
"state": "Italy",
"region": "Toscana",
"city": "Groppoli (Mulazzo)"
},
{
"name": "Tappa22 - Passo della Cisa - Pontremoli",
"state": "Italy",
"region": "Toscana",
"city": "Groppodalosio"
}
]
}
Всякий раз, когда строка, введенная в текстовое поле, соответствует одному из 63 городов, перечисленных в файле JSON, я хочу отобразить карту этого конкретного города.
для этого я хочу использовать API открытого поиска Nominatim (от здесь ) и связать их с OpenStreetMap.
Для начала я выполнил запрос API для определенного города через функцию обратного вызова ajax success, сохранив файл JSON, содержащий код GeoJSON (я получил его, изменив параметры кода GeoJSON здесь ).
var readCoordinates = function(){
$.ajax({
url: "http://localhost/prove/coordinate_Siena.json",
dataType: "json",
success: function (data) {
setTimeout(function () {
for (let i = 0; i < data.features.length; i++) {
let coordinate = data.features[i];
$("#tbody2").append("<tr><td>" + coordinate.geometry.coordinates + "</td></tr>");
console.log("ajax and for loop have been activated");
console.log(coordinate.geometry.coordinates);
};
}, 1000);
}
});
};
Код выше работает: возможно, я вижу координаты в консоли.
Теперь мне нужно получить координаты для каждого из 63 городов, перечисленных в моем файле JSON (1). Я мог бы сохранить файл JSON для каждого из них, а затем использовать его в функции обратного вызова ajax success, но это кажется непрактичным.
Есть ли способ сделать это, написав функцию, которая "изменяет" параметр файла JSON (2)?
Другими словами, учитывая, что я могу получить координаты города через запрос API, могу ли я «переработать» этот запрос API для получения координат нескольких других городов, написав функцию, которая динамически изменяет параметры этого города?