Получить видимые на карте объекты (не работает)

Пытаюсь получить видимые на карте объекты, выдает ошибку "Uncaught Error: geometry.component.pixelContains: Для рассчета вхождения точки геометрия должна быть добавлена на карту.". Как исправить? Новичок в YM API.

Метки в нескольких городах, сначала задаю центр карты так, чтобы вписались все метки, если разрешена геолокация - центрирую карту по расположению пользователя. Пытаюсь сделать второй setBounds, чтобы затем в карту вписывались все видимые на текущий момент точки.

//prepare variables
let placemarks = [];

//add map
let myMap = new ymaps.Map("yamap", {
    center: [0,0],
    zoom: 11
},{
    autoFitToViewport: 'always'
});

//get all warehouses from the left list
let els = $('.shlist .whitem');
    els = els.length > 0 ? els : $('.whcont .whitem');

//iterate over warehouses, add a placemark for each one
els.each(function(){
    //prepare variables
    let eid = $(this).attr('data-id');
    let coord = $(this).attr('data-coord').split(',');

//add placemark
let myPlacemark = new ymaps.Placemark([coord[0],coord[1]],{},{
    id: eid,
    iconLayout: 'default#image',
    iconImageHref: thmeurl+'/img/placemark.svg',
    iconImageSize: [25,30],
    iconImageOffset: [-12, -21]
});
    myMap.geoObjects.add(myPlacemark);
    placemarks[eid] = (myPlacemark);
});

//center the map to show all placemarks
myMap.setBounds(myMap.geoObjects.getBounds(),{checkZoomRange:true, zoomMargin:9});

//ig geolocation is on, center map on user's location
ymaps.geolocation.get({}).then(function(result){
    let crd = result.geoObjects.get(0).geometry.getCoordinates();
    myMap.setCenter(crd, 10);

}, function(){
    myMap.setBounds(myMap.geoObjects.getBounds(),{checkZoomRange:true, zoomMargin:9});
});

//get visible objects
//выдает ошибку "Uncaught Error: geometry.component.pixelContains: Для рассчета вхождения точки геометрия должна быть добавлена на карту."
let visibleGeoObjects = ymaps.geoQuery(myMap.geoObjects).searchIntersect(myMap.getBounds());
console.log(visibleGeoObjects);

Ответы (1 шт):

Автор решения: dekho

Объекты карты нужно создавать с помощью функции geoQuery, как в этом примере. Тогда можно будет получить список видимых объектов таким образом:

const result = ymaps.geoQuery(myMap.geoObjects).searchIntersect(myMap);
→ Ссылка