Оптимизация рисования карты - PullRequest
0 голосов
/ 29 ноября 2009

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

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

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

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

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

увеличено уменьшено

Ответы [ 3 ]

1 голос
/ 29 ноября 2009

Вот две идеи:

  1. Каждый объект, который мы рисуем на карте, имеет дополнительное значение в базе данных, «Уровень масштабирования». При увеличении дополнительных элементов будут отображаться на основе этого значения.

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

0 голосов
/ 30 ноября 2009

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

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

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

0 голосов
/ 29 ноября 2009

некоторые подсказки:

  1. область клипа, для рисования точек только в области клипа
  2. Вы можете проверить ГИС-проект с открытым исходным кодом, посмотреть, как они оптимизируют рисование.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...