В init получаю features из RemoteObjectManager
var objectManager = new ymaps.RemoteObjectManager('/api/maps/getFeatures&bbox=%b&zoom=%z',
{
clusterHasBalloon: true,
splitRequests: false,
geoObjectOpenBalloonOnClick: false,
clusterHideIconOnBalloonOpen: false
});В зависимости от масштаба это либо полигоны - округа или районы, либо точки. У каждого округа и района в details есть цифра, и ее нужно выводить меткой, только когда виден этот округ/район.
Создаю коллекцию для будущих меток:
var myGeoObjects = new ymaps.GeoObjectCollection({}, {
preset: "islands#redCircleIcon",
strokeWidth: 4,
geodesic: true
});В setFilter высчитываю центр полигона и помещаю метку в коллекцию:
cameraObjectManager.setFilter(function(object) {
if (object.properties.details.objectType == 'DISTRICT') {
var polygonGeometry = new ymaps.geometry.Polygon(object.geometry.coordinates);
polygonGeometry.setMap(myMap);
polygonGeometry.options.setParent(myMap.options);
var pixelBounds = polygonGeometry.getBounds();
var pixelCenter = [pixelBounds[0][0] + (pixelBounds[1][0] - pixelBounds[0][0]) / 2, (pixelBounds[1][1] - pixelBounds[0][1]) / 2 + pixelBounds[0][1]];
var myPlacemark = new ymaps.Placemark(
pixelCenter, {
iconContent: object.properties.details.cameraCount,
hintContent: object.properties.details.name,
balloonContentBody: object.properties.details.name + ": " + object.properties.details.cameraCount + " камер"
}, {
preset: 'islands#blackStretchyIcon'
}
);
myGeoObjects.add(myPlacemark);
}
return true;
});и добавляю на карту:
myMap.geoObjects.add(objectManager);
myMap.geoObjects.add(myGeoObjects);
Как сделать так, чтобы при каждом обновлении RemoteObjectManager, предыдущие метки из этой коллекции удалялись? Сейчас, если я масштабирую с района на округ, то районные метки остаются, и добавляется окружная метка. Нужно, чтобы удалялись только они, но не метки, полученные через сам RemoteObjectManager.
Что и в какой момент нужно вызывать, чтобы эта коллекция меток очищалась и удалялась с карты при каждом зуме/запросе RemoteObjectCollection?