Распределение доставок и Карты Google

Автор: | 19 ноября 2010

Была поставлена задача автоматизировать, упростить работу сотрудника, занимающегося распределением доставок по маршрутам. Ну если быть более точным, то задача выглядела вот так:

1. ...
2. Возможность загрузить доставки на заданный интервал дат.
3. При запуске скрипта запросить условие — по признакам ...
4. Изменить внешний функционал. Не делить экран на два поля в разделе маршруты. Сделать две закладки — «доставки» и «маршруты». В закладке доставки отображать документы доставок (то,что сейчас отображается в разделе «маршруты»), а в разделе «маршруты» отображать работу с маршрутами.
5. Ликвидировать раздел «пирамиды».
6. В разделе Маршруты:
а.) Выводить маршруты соответствующие выбранному диаппазону доставок.
б.) добавить колонку «водитель». В которой оператор будет проставлять ФИО водителя. Эти данные нужно будет сохранить и проставить это ФИО в каждой доставке.
в.) подвал маршрута — показывать позиции изделий, упаковки. Скрыть крепеж. Для упаковок тоже сделать подвал, в котором нужно отобразить содержимое упаковки.
г.) к маршруту добавить колонку «изображение изделия с размерами». В том виде как сейчас это реализовано в разделе пирамиды.

7. Во всех полях «комментарий», если есть комментарий показывать значок всплывающего окна, кликнув на который открывается коммент.
8. В закладке доставок создать колонку для работы диспетчера, по которой он будет группировать. В этой колонке будут ставить текст.
9. Сделать возможным увидеть общее количество доставок, изделий, площадь
10. Сделать с подсветкой доставки, у которых в заказе монтаж равен дате доставки


Уже в процессе решения основной задачи поступили просьбы, связать программу WinDraw с какой-либо графической картой, что бы отображать нужный адрес на карте. Выбирая с какой картой работать сначала отсекли офф-лайн версии. Дальше выбирали между Яндекс.Картами и Google.Maps. В итоге выбран был Гугл, как наиболее функциональный и быстро развивающийся.

Итак, от карты требовалось либо отобразить адрес конкретного договора, либо проложить маршрут по нескольким адресам.

Первая часть была решена быстро и просто, фактически открывается браузер по умолчанию и в адресную строку вставляется выражение

например

Просмотр адреса конкретного договора

Вторая часть более интересна. Необходимо передать несколько адресов сразу, что бы проложить маршрут между ними. Сразу появилась проблема — в длинне строки http больше 10 адресов не удается отправить. Тем более, что адреса заполняет кто как. Плюс в адрес вставляют номер квартиры, этаж, код домофона и многое другое, что только мешает Google.Maps правильно найти адрес. Была написана такая вот функция (она не идеальна и периодически дорабатывается):

Благодаря этой функции стало возможно передавать больше 10 адресов сразу.

Прокладка маршрута в Гугл Картах

Конечно некоторые адреса приходится подкорректировать, но в итоге получается проложенный маршрут, внутри которого можно менять последовательность точек прохождения (достаточно просто перетаскивать буквенный маркер вверх или вниз и маршрут перестраивается).

Вот такой вот получился инструмент.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*