Показать сообщение отдельно
  #4  
Старый 10.03.2009, 17:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Я бы делал так:
1. Сделал бы некоторый TBitmap, куда грузится карта.
2. Отображение делал бы с помощью TPaintBox, в обработчике которого OnPaint отрисовывал бы карту и уже поверх нее сетку, маршруты и все другие вещи.
3. Вопрос отрисовки и очистки решается с помощью условий отрисовки в OnPaint вышеупомянутого компоенета. Т.е. машруты, например, хранятся в виде массива координат. Если массив пуст, то и отрисовывать ничего не надо.

Теперь пара замечаний.
Прямая реализация такого механизма вполне работоспособно, но требует много ресурсов, ечли карта большая. Поэтому сразу лучше продумать механизм динамической подгрузки карты из разныз кусочков. Как вариант - резать карту на куски, перекрывающиеся на 50% и каждый кусок должен быть больше "окна просмотра" в 2 раза или вообще не перекрывающиеся. В первом случае подгрузка требует нахождения нужного куска карты. Во втором случае - нахождение нужных 1-4 кусков и отображения их. Первый способ затратнее по общим ресурсам, второй - по коду (он сложнее).

Ну а дальше - думай как что надо реализовать.
Ответить с цитированием