HPC.ru lite - Все форумы
Форум: PocketGPS Pro и MacCentre PocketGPS
Тема: Вопрос разработчикам. Как реализован алгоритм P_GPS Pro Mosc
[Ответить]
Devis [14.02.2005 21:23] Вопрос разработчикам. Как реализован алгоритм P_GPS Pro Mosc:
А вы знаете как реализована прорисовка карт на Ozi?
Там файл карты состоит из двух. Один файл - это данные, размером около 4Кб, второй - само изображение карты, размер которого ограничивается только местом на ваших флэшках. Для открытия карты, выбирается файл данных - программа считывает информацию и подгружает только часть изображения, которая видима на экране. При смещении карты, снова идет пересчет и загружается новая часть изображения. Т.е. для работы программы, не нужно загонять в ОЗУ всю карту, а только ту часть котороя в данный момент отображается на экране.
Сама программа занимает 3 mb, при работе забирает памяти для программ около 2 мб. ИМХО, очень грамотное решение для КПК, для которых ресурсоемкость программ весьма критично. Можно накидать в католог где расположены карты, хоть на гигабайт карт или карт любых размеров, и это никоим образом не влияет на скорость работы программы. Например объем 5 келометровки всей Московсой области 60Мб. А можно хоть 600. В памяти все-равно только кусочек, который в данный момент в видимой части экрана.
Похожий алгоритм реализован и у Tom Tom Navigator.
Почему разработчикам не подумать о таком принципе работы программы? Это даст возможность совершенствовать карту и POI не оглядываясь на ограничения по размерам, загрузке ОЗУ и скорости работы программы. Она (скорость) в этом случае будет стабильна и не зависима от подробности и объемности карты.
Андрей К. [15.02.2005 10:40] :
Отрендерить целиком векторную карту объёмом 20 Мбайт на КПК невозможно, потому что:
1. Карта гибко масштабируется
2. Даже для одного масштаба, с которым можно работать, не хватит памяти.
3. Даже если бы хватило памяти, программа грузилась бы недопустимо долго.
Так что рендерится именно кусок карты, с учётом текущего масштаба, генерализации карты для этого масштаба и т.п.
Devis [15.02.2005 13:08] :
Тогда не понятно, почему столько памяти съедает программа, по сравнению с вышепреведенными?
[Ответить]