Клуб API Карт

objectManager.setFilter множество значений у точки

nsradionov
20 апреля 2015, 23:18

Доброй ночи. У точки имеются "районы"

[0] => Array

                (

                    [type] => Feature

                    [id] => 124

                    [geometry] => Array

                        (

                            [type] => Point

                            [coordinates] => Array

                                (

                                    [0] => 59.939095

                                    [1] => 30.315868

                                )

 

                        )

 

                    [properties] => Array

                        (

                            [dataid] => 124

                            [type] => Array

                                (

                                    [area] => Array

                                        (

                                            [0] => Калининский

                                            [1] => Невский

                                        )

 

                                )

 

                            [balloonContent] => контент

                            [clusterCaption] => Еще одна метка

                        )

 

                )

 

каким образом можно выбрать точку по району?
$('#test').click(function(){
    objectManager.setFilter('properties.type.area == "Невский"');
});


не срабатывает, тоесть если properties.type.area не array то все ок, а если есть много значений в нем не работает.

10 комментариев
Подписаться на комментарии к посту

Используйте функцию-фильтр

Это всегда к тому же будет быстрее, не надо парсить строку

можно пример? не могу найти.

 

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

 

$.each( visible, function( index, objectId ){

objectManager.objects.setObjectOptions(objectId, {visible: false});

});

Пример есть в справочнике. Можете написать как и где вы искали и не нашли?

https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ObjectManager-docpage/#setFilter-param-filterFunction

примеров тут на множественные значения нет.

 

 

Используйте функцию-фильтр

 

Вы не читаете что я Вам пишу

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

// Можно задавать функцию-фильтр. objectManager.setFilter(function (object) { return object.properties.name != 'Тот, кого нельзя показывать.'; });

Если не сложно, можно пример? самый простой. это я видел, но не могу разобраться как ею пользоваться.

objectManager.setFilter(function (obj) {

    return obj.properties.type.area[0] == 'Невский';

});

так пробовал, но area[0] == калининский, а area[1] == невский.

а мне нужно вывести к примеру все точки с невским райноном, где-то у невского будет другой индекс.


[properties] => Array

                        (

                            [dataid] => 124

                            [type] => Array

                                (

                                    [area] => Array

                                        (

                                            [0] => Калининский

                                            [1] => Невский

                                        )

 

                                )

все ваши исходники пересмотрел, нету информации как выбрать такой объект через objectManager.setFilter('properties.type.area ==  "Невский"');

почему не работает objectManager.objects.setObjectOptions(objectId, {visible: false}); ? или как скрыть точку?