Вопрос

У меня проблема с оптимизацией рисования Google-подобной карты. Он работает нормально для сотен пунктов, но когда дело доходит до больших количеств, таких как тысячи, он становится размытым и медленным Также не масштабируется это выглядит странно.

Я хотел бы знать, как оптимизировать алгоритм рисования, чтобы рисовать меньше мест, чтобы он выглядел как масштабирование на Картах Google.

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

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

Вот как это выглядит:

увеличено в размере уменьшен

Это было полезно?

Решение

Я думаю, что у меня возникнет соблазн не рисовать линии, которые короче порога (и я имею в виду это с точки зрения области просмотра, а не с точки зрения абсолютного расстояния). Это означает, что при уменьшении карты у вас будет меньше рисовать, и карта будет выглядеть менее занятой, а когда масштаб карты будет виден, линии между этими близлежащими точками. Изменить: на самом деле, подумав еще немного, я думаю, что применил бы это ограничение длины только тогда, когда на экране большое количество строк & # 8212; или сделайте порог длины функцией количества строк на экране.

Думаю, у меня также возникнет соблазн не рисовать линии от точек, которые находятся за пределами экрана (вне области просмотра) или, по крайней мере, довольно далеко от экрана (порог от центра области просмотра). Я бы предложил сначала попробовать это изменение.

Эти изменения могут показаться, что они будут скрывать информацию (и они будут это делать), но, как она есть, карта настолько занята, что представленная информация в любом случае практически бесполезна.

Другие советы

Вот две идеи:

<Ол>
  • Каждый объект, который мы рисуем на карте, имеет в базе данных дополнительное значение " Zoom Level " ;. При увеличении дополнительных элементов будут отображаться на основе этого значения.

  • Второй способ - использовать группировку. Если элементы начинают перекрываться, показывайте одну точку с помощью [10 элементов]. Отображать только элементы под ним при увеличении.

  • некоторые советы:

    <Ол>
  • область обрезки, чтобы рисовать точки только в области обрезки
  • вы можете проверить ГИС-проект с открытым исходным кодом, посмотреть, как они оптимизируют рисование.
  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top