Заставить канцелярскую кнопку двигаться по маршруту

Я искал ответ на, кажется, довольно специфическую проблему. Я пробовал google, stackoverflow и, в некоторой степени, форумы Microsoft.

Для школьного проекта я создаю приложение для отслеживания воображаемой компании по переработке молока. Некоторые из функций, которые он должен иметь, заключаются в том, что он может вести учет всех грузовиков, показывать карту местности и показывать состояние грузовика, его местонахождение и груз. Все данные предоставляются с использованием базы данных MySQL.

Мне уже удалось создать маршрут и показать его на карте с помощью приведенного здесь кода: http://social.msdn.microsoft.com/Forums/en-US/d7b0b272-35f3-4724-8546-dce9bd8b1e3d/wpf-bing-map-control-how-to-draw-route-lines?forum=bingmapssilverlightwpfcontrols

Теперь проблема в том, что я хотел бы позволить канцелярской кнопке двигаться по маршруту от начала до конца. Например, я создаю маршрут из Ливерпуля в Манчестер, на карте появится синяя линия. Идея состоит в том, что я создаю канцелярскую кнопку поверх Ливерпуля и заставляю ее двигаться вдоль линии до тех пор, пока она не достигнет Манчестера.

Я решил, что лучшим решением является использование потока или таймера, который изменит/обновит местоположение, используя событие, которое срабатывает?, канцелярской кнопки, но я просто не знаю, с чего начать.


person Michel de Nijs    schedule 26.05.2014    source источник


Ответы (1)


Вот соответствующая запись в блоге команды Bing Maps: http://blogs.msdn.com/b/bingdevcenter/archive/2014/04/07/staying-fit-with-bing-maps.aspx

Вот основная идея того, как этого добиться. Используйте службу REST-маршрутизации Bing Maps, чтобы получить массив точек, составляющих линию маршрута. (Предполагая, что вы хотите анимировать автомобильный маршрут). Создайте таймер и увеличивайте расстояние на указанную величину каждый раз, когда он срабатывает. Это даст вам скорость, а затем каждый раз, когда расстояние будет увеличиваться, используйте его, чтобы перебрать все точки маршрута, рассчитать расстояние между каждой точкой и суммировать их, пока они не превысят ваше текущее расстояние. когда это произойдет, сделайте шаг назад на одно место в массиве точек маршрута, а затем установите местоположение вашей булавки в это место.

person rbrundritt    schedule 26.05.2014
comment
Я читал этот блог пару раз, но не мог уложиться в голове. Событие TimerTick на самом деле не очень хорошо объяснено в блоге. Я попытаюсь построить что-нибудь, используя ваше объяснение! Благодарю вас! - person Michel de Nijs; 27.05.2014