Android: производительность рисования карты, 1K рисунков! - PullRequest
1 голос
/ 09 июля 2011

Итак, у меня есть приложение, которое рисует линии, полилинии, круги и т. Д. Поверх открытой карты. Я сохраняю список рисунков, когда карта становится недействительной, я повторяю, хотя список перерисовывает каждый элемент в методе onDraw Overlay. Это прекрасно работает, пока мой счетчик рисунков не достигнет 300+. Затем возникает серьезная задержка пользовательского интерфейса.

Я ищу эффективный способ сделать это?

Я сделал рисование растрового кэша в "настольном" приложении для рисования. Хотя это не сработает в этой ситуации, поскольку проекция на заднем плане может измениться, поэтому чертеж должен двигаться.

1 Ответ

2 голосов
/ 03 октября 2011

Я сохранял GeoPoints, а затем выполнял тяжелое преобразование в «MapView Point» во время каждой перерисовки. Оказывается, у Проекции есть «Промежуточная точка», которую можно сохранить и легко спроецировать на «Точку MapView». Так что тяжелая вычислительная часть выполняется только один раз.

Steps

  • Событие движения (x, y) в GeoPoint с использованием (fromPixels)
  • Значение GeoPoint to Intermediate с использованием (toMapPixelsProjected)
  • Кэширование промежуточных значений для отображения чертежа
  • OnDraw -> промежуточные значения для координат экрана, используя (toMapPixelsTranslated)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...