Клуб API Карт

ограничить выборку

styleroom
26 февраля 2014, 15:25

всем привет

с класетризацией для своеих 1000 точек по Москве я разобрался

но теперь надо реализоват локальный показ для каждого метро

вопрос: можно ли программным способом ограничть показ точек в определеной зоне

ну, типа: xml-файл на все 1000 точек, но в слое отображать только ближайшие к координате 10-15 штук

9 комментариев

сам разобрался

работает вот так =

ymaps.geoXml.load('http://mysite.ru/qwe.xml?'+timestamp)
    .then(function (res){

        var clusterer = ymaps.geoQuery(res.geoObjects)
                .searchInside(map)
                .clusterize();

        clusterer.options.set({
            preset: 'twirl#invertedVioletClusterIcons',
            gridSize: 230,
            groupByCoordinates: false,
            clusterDisableClickZoom: false
        });

        map.geoObjects.add(clusterer) ;   

});

может кому пригодится

var obj = res.geoObjects;

зачем это?

 

Ограничить наверное лучше на сервере (всмысле не присылать лишнее)

Зачем присылать всё чтобы показать 5%?

поправил :)

эхххх... придется вручную отбирать точки у метро

По расстоянию можно же выбрать

не понял = как - по расстоянию?

из одного большого xml-файла?

или выборка на уровне ymaps.geoXml.load?

посяните, плиз!

Можно использовать что-то типа http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/GeoQueryResult.xml#sortByDistance

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

но ведь все равно придется грузить полный xml на 1000 точек в ymaps.geoXml.load

добавлять их на карту, а потом уже делать сортБай = Метод, позволяющий получить выборку, содержащую объекты, отсортированные по расстоянию до указанного объекта. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. Не изменяет исходную выборку.

Ну делайте это на сервере, есть же spatial indexes в MySQL 

нужно попробовать

спасибо за подсказку