Кэш, который рисуется на MapView в Android - PullRequest
4 голосов
/ 15 апреля 2011

Я разрабатываю приложение для моего университетского городка, которое отображает кампус в MapView; затем, используя геопоинт, рисует контуры зданий в кампусе на карте, используя метод draw класса, который расширяет Overlay . Нарисовано около 50-60 зданий, в результате чего получается очень запаздывающая карта, поскольку метод рисования постоянно перерисовывается снова и снова.

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

Спасибо!

1 Ответ

2 голосов
/ 15 апреля 2011

Если у вас есть все точки, организованные в многоугольники, вы можете нарисовать многоугольники на холсте, а затем нарисовать их на оверлее.Это, я думаю, будет быстрее.

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

Если вы переместились (X, Y)пикселей с более ранней позиции, переместите существующий холст в новую позицию и просто нарисуйте новые элементы, которые появляются на карте.

Конечно, это не оптимальное решение, потому что этот тип кэширования не будет работать сzoom.

Надеюсь, это помогло как-то!JQCorreia

...