Я хочу через Jquery получить данные о точках геойсона (т.е. установить несколько маркеров на карте) из базы данных.
function remm(id){
$.ajax({
type: "POST",
url:"geojson2.php",
data:{
u_id:id[0],
t_id:id[2]
},
success: function(geo,status){
myLayer.setGeoJSON([geo]);
console.log(geo);
}
});
}
При тестировании данных точек, извлеченных из geojson2.php в GeoJSON Lint, они работают отлично. Однако при вызове функции myLayer.setGeoJSON () она удаляет только все существующие маркеры. myLayer создается в начале файла javascript и выглядит так:
L.mapbox.accessToken = 'key';
var map = L.mapbox.map('map', 'mapbox.streets').setView([40, 0], 1);
var myLayer = L.mapbox.featureLayer().addTo(map);
Поскольку он убирает все маркеры с карты, похоже, что myLayer не доступен для функции обратного вызова в ajax. В чем может быть проблема и что мне не хватает?
.setGeoJSON
Метод заменяет GeoJSON — это настройка GeoJSON, а не добавление отдельных функций. Если вы хотите добавить новые функции вместо замены существующего контента, я бы рекомендовал создать новый слой для функций, с которыми вы загружаете jQuery
с L.mapbox.featureLayer
метод, и добавив его на карту.
Других решений пока нет …