TransWikia.com

Миллион точек. Как избавиться от аяксовой перерисовки карты, используя только инструментарий API Яндекс Карт?

Stack Overflow на русском Asked on January 8, 2021

На прошлой неделе на совещании в Минздраве некий сотрудник Яндекса раскритиковал мою карту, и сказал что ее можно сделать без аяксовой перерисовки карты:

https://roszdravnadzor.gov.ru/control/medorganizations

Там при нажатии на кнопку "открыть >>" я получаю аяксом новую порцию точек, убиваю карту и рисую новую карту с только что полученными точками:

function ajax_show_region_by_id(id) {
    jQuery.ajax({
        type:"POST",
        url: "/ajax/control/medorganizations",
        data:{ajax_get_geos_by_parent:1,id_parent:id}
    }).done(function( data ) {
        data = JSON.parse(data); /* Convert string to JSON */
        var geos = data['geos'];
        var level_fetched = data['level'];
        var coord1 = data['coord1'];
        var coord2 = data['coord2'];
        var len = geos.length;
        points4russia = geos;
        level = level_fetched || 1;
        center_coord1 = coord1 || '$DATA->{center_coord1}';
        center_coord2 = coord2 || '$DATA->{center_coord2}';
        id_medorganization='$DATA->{id_medorganization}';
        addr4ygeocoder='$DATA->{addr4ygeocoder}';
        top_regions_only=@{[$$DATA{top_regions_only} || "0"]};
        if (points4russia) {
            myMap.destroy();
            ymaps.ready(init1);
        }
    });
    return false;
}

Я не нашел ни одно решение, которое бы полностью подходило под мои потребности:

https://tech.yandex.ru/maps/jsapi/doc/2.1/dg/concepts/many-objects-docpage/

Главные проблемы:

  1. У меня есть и серверная кластеризация, и клиентская Яндекс-кластеризация.
    А Яндекс предлагает либо клиентскую кластеризацию (LoadingObjectManager), либо серверную кластеризацию (RemoteObjectManager).

  2. Яндекс динамическую подгрузку данных осуществляет путем деления карты на тайлы.
    У меня же на сервере нет деления на тайлы, – а есть деление на регионы/районы и т.д.
    Сделать кластеризацию по тайлам будет затруднительно, и главное не логично с точки зрения бизнес-логики.

  3. Специфика моей карты такова, что сейчас там 6 тыс. медорганизаций.
    А после полного заполнения будет порядка 1 млн. медорганизаций.

Соответственно вопрос.
Какую конкретно технологию Яндекс API я должен использовать, чтобы избавиться от моей текущей аяксовой перерисовки карты?

Ткните, пожалуйста, в документацию, – желательно с примерами.

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP