Я установил следующую функцию обратного вызова, чтобы получить координаты какого-то определенного города, в соответствии с которым строка вводится в текстовое поле:
var readCoordinates = function(){
$.ajax({
url: "https://nominatim.openstreetmap.org/search?q=" + encodeURIComponent($("#inlineFormInputCitta").val()) + "+Italy&format=geocodejson",
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>");
};
}, 1000);
}
});
};
Я хочу добавить Leaflet Map, чтобы отобразить карту города, в соответствии с которой координаты, которые я получаю через функцию обратного вызова.
Я добавляю следующее <div>
в мой HTML-код:
<!-- using Leaflet library for free, step 1: create a </div> -->
<div id="leaflet"></div>
А затем я добавил следующие строки кода в предыдущий фрагмент:
var map = new L.Map('leaflet', {
center: [0, 0],
zoom: 0,
layers: [
new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
'attribution': 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors'
})
]
});
На моей веб-странице появляется следующее:
* +1012 *
Как мне сделать, чтобы вставить правильные координаты в мои строки кода, чтобы получить карту нужного мне региона?
Я изменил свой код, потому что я инициализировал карту, отменив вызов Ajax (спасибо за указание). Вместо этого я вырезал и вставил приведенный выше фрагмент вне вызова Ajax, создав новую функцию initMaps()
:
function initMaps(){
map = L.map('leaflet').setView([0, 0], 13);
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 18,
'attribution': 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors'
}).addTo(map);
}
Проблема в том, чтобы сбросить координаты в функции вызова Ajax сейчас, но я больше не вижу этой ошибки.