Клуб API Карт

Обновить карту

Пост в архиве.

Добрый день. На карте вывожу метки, всё отлично. при клике аяксом подгружаю новые точки, как их вывести на карту? (обновить карту)

15 комментариев

Добавить новые в ту же коллекцию ко всем остальным меткам?

нет. убрать старые и поставить новые.

удалить из коллекции все метки и добавить новые

собственно это я и спрашиваю

А в чем проблема?

Все методы есть в документации.

Вам нужно целых два - add и removeAll

новые точки подгружаю методом load, а код карты в другом подключаемом js

load ни о чем не говорит. jQuery.load?

Вы добавляете точки в коллекцию и удаляете 

покажите код который это делает

подгружаю новые точки для карты (взамен старых)

    var loader=document.createElement("script");
    loader.id="loader";
    loader.type="text/javascript";
    loader.src="/d/c.php";
    document.body.appendChild(loader);

 

/d/c.php возвращает обычный массив точек.

код с картой maps.js подгружен ранее, в нём добавляю точки в коллекцию при загрузке странички. (и вообще весь код связаный с картоми)

 

Подгрузил новый массив точек. как добавить в коллекцию чтоб карта показала новые точки, а старые удалить.

 

В init не удобно делать. или только в нём прид1тся?

бетмен?

Это очень странный способ подгрузки.

Зачем создавать глобальную переменную каждый раз и добавлять в DOM - лишние ноды.

Используй JSON + AJAX

можешь показать пример, а то вечно проблемы с видимостью переменных карты. то mycollection not defined.

Если я в 10тысяч первый раз напишу одно и тоже,

не будет профита ни мне ни тебе,

поэтому попробуй сделать сам,

и если не получится, будем разбираться

как пользоваться аяксом знаю. уже получаю так точки. проблема в том как их добавить на карту и удалить старые.

ведь делаю аякс не в init()

проблема с видимостью переменных апи яндекса.

как к ним обрашаться? выдаёт постоянно undefined. уже нервы (

создай переменную выше init а назначай значение в init

var myCollection;

function init () {

...

myCollection = new ymaps.GeoObjectCollection();

...

}

спасибо бэтмен.

Для таких же нубов как и я: 

если нужно динамически подгужать точки на карту, делать только в init а в ней аяксом получать точки (я не только их получал) (вешать на что нужно), далее точки выводить в цикле на карту.