четверг, 27 ноября 2014 г.

Три кита редактирования #Waze

Сегодня наша тема  - редактирование в вейз. Заметка будет интересна тем, кто хочет попробовать свои силы, но не очень понимает что и как.
Что нужно сделать, чтобы навигация была рабочей и правильной? Кратко расскажем об этом.

Основы редактирования Waze можно представить в виде “трех китов” - трех правил последовательного создания дорожного графа.
1. Дороги. Это наше “все”. Без дорог не будет ничего - само собой разумеющееся положение. Поэтому, в первую очередь, мы должны озаботиться их рисованием. Для нашего примера создадим дороги “с нуля”. Если в конкретном случае нужно дорисовать лишь их часть - задача только упростится.
Скриншот 2014-11-27 20.39.23.png
Обводим все дороги на карте. Не нужно следовать каждому изгибу - рисуем больше “схему дорог” - это не принципиально для навигации, но визуально карта  будет выглядеть намного лучше. У нас получилась такая картинка:
Скриншот 2014-11-27 20.49.45.png
Треть дела сделана. При определенных обстоятельствах (конечно, чисто гипотетических - как шутил коллега - если запустить на эти дороги половину китайцев в качестве вейзров) маршруты будут строиться и так. Сервер “поймет”, что это не отдельные линии, а “сетка” дорог. Но лучше этого не дожидаться, а сразу нарисовать требуемое.
2. Сеть дорог. Итак, переходим ко второму “киту”. Дороги нужно связать друг с другом и указать разрешенные маневры на перекрестках. Если переключиться в режим отслеживание запрещенных поворотов (комбинация клавиш {shift}+Z), то картинка будет такой:
Скриншот 2014-11-27 20.54.53.png
Видно, что система на каждом "перекрестке" видит запрет движения. В нашем случае разрешать нужно все повороты. Выделяем "перекресток" (узел) и нажимаем “W”. Это необходимо сделать на каждом пересечении дорог. Если рисовать посегментно, то "перекрестки" будут получаться сразу. Мы же рисовали “погонно-поточным” методом. В этом случае дороги будут ровнее, но не будет “перекрестков” в местах пересечений линий. Их нужно создать. Это просто сделать - нужно выделить два сегмента и нажать на появившийся значок перекрестка.
Скриншот 2014-11-27 21.01.13.png
Заметим, что выделить мышкой несколько сегментов можно путем одновременного с выделением удержания клавиши {cntrl} для windows или {cmd} для mac.
Проходим все пересечения дорог, делая узлы где их нет и разрешаем все повороты на них. При этом слой спутниковых снимков можно отключить, чтобы картинка была проще и яснее. Получаем следующее:
Скриншот 2014-11-27 21.13.11.png
Все стрелки зеленые и перекрестки проставлены. На этом этапе можно применить множество дополнений для редактора вейз - так называемых скриптов или адонов - для проверки качества проведенной работы. Об этом расскажем позже.
Итак, второй этап завершен. По этим, пусть “красным” и недооформленным дорогам навигация уже будет строиться. Карты появятся в клиенте вейз и выделив один сегмент в качестве начала, получим маршрут к любому другому. За несколько минут мы создали сеть дорог, по которым завтра уже можно ездить.
3. Ранжирование. Наконец, третий “кит” редактирования карт вейз. Нужно дороги проранжировать, правильно офомив их. Это означает не столько их наименование, сколько присвоения им разных типов. Вейз, в этом случае, сможет правильно выбирать нужные нам дороги для маршрутизации. Имя улицы будет влиять только на ее поиск и поиск тех объектов, которые привязаны к этому имени. Тогда как тип дороги влияет на маршрут, влияет на расчет времени прибытия в конечный пункт, влияет на голосовые подсказки во время движения, влияет на отображение в клиенте, в конце концов. Не будем здесь перечислять все типы дорог, остановимся на самых распространенных и нужных для нашего примера. “Ординарный” тип  - “Дорога” или “Street”. Это основа карты. Дороги рангом выше - “Важная Дорога” или “Primary Street”. Дальше идет “Шоссе” или “Minor Higway”, ну и так далее. В нашем примере делаем все сегменты типом “дорога”. (Технические моменты использования скриптов для автоматизации этой работы покажем в следующий раз).
Скриншот 2014-11-27 23.35.41.png
Это уже оформленный кластер дорог. Нет только имен улиц. Теперь обозначим нужные нам дороги типом “шоссе” и “важная дорога” (что именно и каким типом обозначать нужно решать в каждом конкретном случае).
Скриншот 2014-11-27 23.40.40.png
Светло-желтым отображается “Шоссе”, темно-желтым - “Важная Дорога”, фиолетовым - “Дорога на парковке” (фиолетовый цвет дает скрипт - в “голом” редакторе этой возможности нет).
Теперь можно сказать - Все. (Названия улиц оставим за скобками примера). Транзит по нашему участку будет идти по “Шоссе”, местный транзит - по “Важной Дороге”, “Дорога” будет служить для местного сообщения и использования типа дорог “паркинг” позволит исключить транзит по этим дорогам.

Повторим про “три кита”: первый - дороги; второй - дорожная сеть, их связка и выставление разрешений; третий - ранжирование, присвоение “типов дорог” для правильной маршрутизации.
Скриншот 2014-11-27 23.48.41.png
Удачи на дорогах с Waze, друзья!

4 комментария:

  1. Влад, отличный мастер-класс! )))

    ОтветитьУдалить
  2. Я бы еще добавил, что у дороги неплохо бы указать город

    ОтветитьУдалить
  3. Спасибо. Добавить можно много, поэтому вопрос наименования и вынесен за скобки примера. Отчасти это подразумевается, потому что без заполнения поля "город" дороги не будут отображаться белым цветом - как видно на картинке.

    ОтветитьУдалить