Я хочу, чтобы через Jquery вытащили из базы данных некоторые данные о геоионных точках (т. Е. Установили некоторые маркеры на карте).Mapbox, не может установитьGeoJSON в обратном вызове 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. Что может быть проблемой и чего я не вижу?
Я пробовал это, но это тоже не работает. Является ли экземпляр объектов 'map' и 'myLayer' глобальными, чтобы все функции, независимо от того, где вы находитесь в скрипте (обычные функции js, jquery callbacks и т. Д.)? @tmcw – JMats
> Является ли экземпляр объектов 'map' и 'myLayer' глобальными, так что все функции, независимо от того, где вы находитесь в скрипте Это полностью зависит от того, где вы их создаете. Если вы создаете их с помощью 'var' и создаете их вне любой функции или закрытия, то да, они глобальны. – tmcw
Они создаются только внутри скрипта с помощью var, поэтому я предполагаю, что они станут глобальными в этом случае. Благодаря! @tmcw – JMats