Перейти к содержанию
Fire Monkey от А до Я
  • 0

Нарисовать маршрут на карте с помощью линий и точек


yura371

Вопрос

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

4ea45668812bt.jpg

Изменено пользователем yura371
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

А я такое когда-то делал. Лет 10 назад. Точечки складывал в базочку. И рисовал чёрточки на карточке. При желании можно даже масштабик пересчитать. Ну, с FireMonkey вообще все просто должно быть.

Ссылка на комментарий
  • 0

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

а по алгоритму реализации

  1. разработать алгоритм пересчета координат
  2. загружаете в память картинку TBitmap
  3. для отображения карты с маршрутом на форме размещаете TImage
  4. на TBitmap отрисовать маршрут линиями,в соответствии с алгоритмом пересчета п.1;
  5. скопировать TBitmap в TImage
  6. точки наносить путем создания shape(окружность, квадрат и т.д. или TSelectionPoint). размещать их на TImage  в соответствии с алгоритмом пересчета п.1
  7. в соответствующие события у объектов точек присвоить обработчики нажатия на них

как-то так... и не забываем про масштабирование, если необходимо.

 

Может использовать Google Maps? если только задача простенькая

Ссылка на комментарий
  • 0

а исходные коды уже написанной программы не нужны?  :D

 

ты не с той стороны заходишь. заходить надо не со стороны картинки карты а со стороны самой карты. координаты улиц по которым можно строить маршрут. точки их пересечений. и когда будешь иметь эту информацию то сможешь уже построить маршрут по своим дорогам и нарисовать его на карте. и тут либо это все сам делаешь руками либо используешь OSM карты там уже все есть. главное что бы твой город там был. 

Ссылка на комментарий
  • 0

вот же напали на человека волкИ, сами никогда начинающими не были? это как на дороге машину со знаком "У" сигналить...

 

клади на форму TPaintBox (дальше pb), загружай в него твой bmp, для начала сразу, потом можно в runtime;

координаты пикселей идут сверху вниз и слева направо, от нуля до размера pb;

все рисовать в OnPaint, между pb.Canvas.BeginScene и pb.Canvas.EndScene

само рисование примеры кода здесь есть http://fire-monkey.ru/forum/68-graficheskie-primitivy/

для перерисовки вызывать pb.Repaint

Изменено пользователем Камышев Александр
Ссылка на комментарий
  • 0

yura371, стоит ли использовать bmp, если можно это делать на карте Google? (Нижнекамск на ней имеется) 

Посмотрите TMapsEngine от ZuBy, он умеет рисовать маршруты.

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...