2016-05-03 1 views
0

Я хочу, чтобы через 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. Что может быть проблемой и чего я не вижу?

ответ

0

Метод .setGeoJSON заменяет GeoJSON - он устанавливает GeoJSON, не добавляя отдельные функции. Если вы хотите добавить новые функции вместо замены существующего контента, я бы рекомендовал создать новый слой для функций, которые вы загружаете с помощью jQuery, с помощью метода L.mapbox.featureLayer и добавления его на карту.

+0

Я пробовал это, но это тоже не работает. Является ли экземпляр объектов 'map' и 'myLayer' глобальными, чтобы все функции, независимо от того, где вы находитесь в скрипте (обычные функции js, jquery callbacks и т. Д.)? @tmcw – JMats

+0

> Является ли экземпляр объектов 'map' и 'myLayer' глобальными, так что все функции, независимо от того, где вы находитесь в скрипте Это полностью зависит от того, где вы их создаете. Если вы создаете их с помощью 'var' и создаете их вне любой функции или закрытия, то да, они глобальны. – tmcw

+0

Они создаются только внутри скрипта с помощью var, поэтому я предполагаю, что они станут глобальными в этом случае. Благодаря! @tmcw – JMats

Смежные вопросы