OpenLayers3. Как изменить маркера и не сломать кластеризацию?

Главная  >>  Frontend  >>  OpenLayers3. Как изменить маркера и не сломать кластеризацию?

Перемещение точек на карте в режиме реального времени задача достаточно специфическая. В этой статье пример, который поможет разобраться с задачей и решить её.

Столкнувшись с подобной задачей и проведя достаточно времени за чтением документации и поиском примеров я нашел прекрасный пример, которым и хочу поделиться с Вами.

Пример находится здесь.

При внимательном рассмотрении всё стаёт на свои места, но сама механика, как и весь ol3 достаточно не очевиден.

Суть заключается в работе с ol.source.Vector({}) и features, которые находятся внутри него. Эти занимаются три метода из примера — addFeature, removeFeature, clearFeatures.

В каждом из них наглядно показана работа по трем направлениям — создание и удаление маркеров, а также полная очистка слоя методом clear.

Стоит отметить также, что данный пример отлично работает с кластеризацией и не требует никаких дополнительных действий. К тому же он более нативен и тонкий, нежели громоздкие примеры с попытками изменить координат маркера, не удаляя его физически с карты. Кроме того последний вариант не всегда правильно работает внутри кластера, ведя себя, мягко говоря, непредсказуемо.

Так или иначе — мне данный код помог и я смог реализовать поставленную задачу с его помощью. Заочная благодарность автору и добро пожаловать в комментарии и подписку на уведомления!