#javascript #css #svg #d3js #svg_animation
У меня есть приложение, которое реализует движение персонажей анимации вдоль заранее
проложенного маршрута на карте города. Маршруты, точнее path сделаны вручную в векторном
редакторе. Вся техника создания маршрутов показана здесь.
Ниже код, реализующий данную технику и анимацию:
.container {
width:100%;
height:100%;
}
Возможно ли максимально автоматизировать прокладку маршрута из одной точки карты
в другую с помощью создания ломанных отрезков path щёлкая мышкой по контрольным точкам
карты, - у разветвления улиц, при изменении направления движения.
Другими словами, - работа программы должна повторять работу в векторном редакторе,
когда мы наносим узловые точки, которые автоматически соединяются отрезками линий,
а на выходе мы получаем готовую формулу патча.
Есть топик, в котором прокладка маршрутов реализована, но она требует указания координат
вершин ломанных линий вручную.
Ответы
Ответ 1
Первый раз работаю с Яндекс картами, был неприятно удивлен, что они поддерживают только целочисленное значение zoom, это осложняет синхронизацию карты с svg картинкой, в которой zoom может быть дробный. Решение сделано при помощи d3.js, сперва необходимо при помощи мыши спозиционировать карту, затем нажать кнопку и появится svg оверлей, по которому можно кликать, прокладывая маршрут. В этом режиме drag правой кнопкой мыши таскает карту, клики левой добавляют точки в маршрут, даблклики по точкам удаляют их. Для того, чтобы получить SVG результат в виде SVG кода, нажмите на кнопку Вот как это выглядит: PS: принимаю предложения по анимации маршрута и другие предложения.P.S. Карты могут быть и не яндексОтвет 2
Информации, скриншотов, сниппетов достаточно много, поэтому решил оформить отдельным ответом, так как этот объем не поместится в комментариях. Хочу остановиться на некоторых аспектах применения замечательного решения @Stranger in the Q Как я попытался применить данное решение: Выбираю на карте нужный фрагмент и делаю скриншот. Добавляю узловые точки вдоль выбранного маршрута и вывожу код этого маршрута Копирую код в отдельный файл, в котором добавлен скриншот карты с помощью команды Произошёл сдвиг карты вправо и вниз из-за отрицательных значений viewBox="-700 -429 1400 858" Обнуляю viewBox="0 0 1400 858"Карта встала на место, но ушел влево и вверх Path маршрута Чтобы вернуть Path на место добавляю команду к
Комментариев нет:
Отправить комментарий