Я пытаюсь создать функцию ajax, в которой я использую форму для передачи значения bbox скрипту PHP, который затем использует параметры bbox для вывода FeatureCollection вернуться к обратному вызову ajax.Функция Ajax для сбора geoJSON FeatureCollection и последующего вывода всплывающих окон на слой карты листка
Из этого я использую JSON.parse(), а затем пытаюсь отобразить часть описания каждой функции как всплывающее окно над соответствующей точкой.
Я потратил бесчисленные часы, пытаясь выяснить, что происходит в моем коде, но я просто не могу понять, как это работает.
Вот мой HTML для формы:
<select name="bbox" id="bbox" onchange="ajaxrequest()">
<option name="Select" value="Select">Please Select</option>
<option name="Hampshire" value="-1.40,50,-1.39,51&format=geojson">Hampshire</option>
</select>
Вот моя функция AJAX:
function ajaxrequest()
{
var bbox = document.getElementById("bbox").value;
//alert(bbox);
var request = new Ajax().sendRequest
('points.php',
{ method: 'GET',
parameters: 'bbox=' + bbox,
callback: resultsReturned }
);
}
А вот AJAX обратного вызова, который содержит коллекцию особенность GeoJSON в тексте ответа:
function resultsReturned (xmlHTTP)
{
//alert(xmlHTTP.responseText);
var geojson = JSON.parse(xmlHTTP.responseText);
for(var i=0; i<geojson.features.length; i++)
{
var layer = new L.geojson();
layer.addData(geojson.features[i]);
}
}
Был бы очень признателен, если бы кто-то мог наполнить меня тем, как закончить потому что это убивает меня.
Заранее спасибо.
Что происходит, когда вы запускаете код? Получаете ли вы правильный ответ? Можете ли вы показать нам значение 'xmlHTTP.responseText'? – flup
Конечно, я покажу вам сокращенную версию. {"type": "FeatureCollection", "features": [{"type": "Feature", "geometry": {"type": "Point", "codes": ["- 1.4266", "50.9168" ]}, «свойства»: {«id»: «15», «name»: «Sanjha Restaurant», «страна»: «Англия», «регион»: «Хэмпшир», «описание»: «Описание»}} , { "типа": "Особенность", "геометрия": { "тип": "Точка", "координата": [ "- 1,34532", "50,9303"]}, "свойство": { "ID": "16 »,« имя »:« Мастер-строитель »,« страна »:« Англия »,« регион »:« Хэмпшир »,« описание »:« Описание »}}]} –
Как вы можете видеть в JS, у меня есть оповещения тестирование значения до и после вызова AJAX просто для того, чтобы убедиться. –