Добавление на карту объектов с разной геометрией
ObjectManager - класс, позволяющий добавить на карту большое количество объектов без необходимости создавать и добавлять на карту метки по отдельности.
Объекты, добавленные в ObjectManager, располагаются в коллекции ObjectManager.objects. Визуальным отображением меток и кластеров являются объекты, реализующие интерфейс IOverlay. Оверлеи помещаются в коллекции ObjectManager.objects.overlays и ObjectManager.clusters.overlays соответственно.
ObjectManager принимает описания меток в JSON формате. Метки могут кластеризоваться или показываться как есть. Если вы не используете кластеризацию, то метки будут показаны только в видимой области карты. Поскольку объекты хранятся в менеджере в виде JSON описаний и их визуальное отображение создается только по необходимости, этот способ добавления точек на карту работает быстрее, чем добавление меток на карту напрямую или через кластеризатор.
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Добавление на карту объектов с разной геометрией</title>
<meta charset="utf-8" />
<style>
html,
body,
.map {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
</style>
<script src="https://yastatic.net/jquery/2.2.3/jquery.min.js"></script>
<!--
Укажите свой API-ключ. Тестовый ключ НЕ БУДЕТ работать на других сайтах.
Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/
-->
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=<ваш API-ключ>"></script>
<script src="object_manager_spatial.js"></script>
</head>
<body>
<div id="map" class="map"></div>
</body>
</html>
ymaps.ready(function () {
var map = new ymaps.Map("map", {
center: [55.79, 37.64],
zoom: 10,
controls: ["zoomControl"],
}),
objectManager = new ymaps.ObjectManager();
// Загружаем GeoJSON файл с описанием объектов.
$.getJSON("data.json").done(function (geoJson) {
// Добавляем описание объектов в формате JSON в менеджер объектов.
objectManager.add(geoJson);
// Добавляем объекты на карту.
map.geoObjects.add(objectManager);
});
});