|
|
|
Работа с картой Visicom XMLAPI
Программа "Такси Диспетчер" интегрирована с картой Visicom XMLAPI (www.visicom.ua), которая позволяет просчитывать маршрут точно из адреса 1 в адрес 2.
Карта Visicom XML API может быть получена для крупнейших городов Украины и самых крупных городов России (Москва, Санк-Петербург). Для уточнения, обращайтесь в нашу службу поддержки: support@taxi-office.ru
Что дает просчет маршрута? Просчет маршрута ДО выполнения заказа может дать протяженность маршрута, а на основании длинны минимального транспортного маршрута программа "Такси Диспетчер" используя правила формирования цены, может определить цену заказа до его выполнения. Этот расчет дает возможность ориентировать клиента в цене поездки или назначать окончательную цену поездки до ее выполнения - соответственно клиент знает, сколько он должен будет заплатить в конце. Для города Киева, например, называть тариф до выполнения заказа является нормой обычного такси.
Данная карта была использована и применяется в нескольких диспетчерских службах города Киева. Результаты от ее внедрения директора таксопарков оценивают однозначно положительно. Основное преимущество - точность прокладки маршрута и возможность не изобретать велосипед, разбивая город на зоны и задавая приблизительные цены/расстояния из зоны в зону. Для изменения тарифов при использовании расчета длины маршрута по карте, достаточно изменить параметры используемых правил и новые цены, сразу будут в действии - не нужно перезабивать все расстояния из определенной зоны в другую.
Замечание: данная статья была написана для Visicom XML API 2.5 версии. В более новых версиях могут быть дополнительные функции, которые могут быть не описаны тут.
О схеме работы:
Для просчета маршрута всеми клиентами Такси Диспетчер используется следующая схема:
1. На одном из компьютеров в сети запускается карта в режиме TCP/IP сервера.
Например:
C:\Program files\Visicom\Visicom.exe -m:guiservice 127.0.0.1:377
(Подробнее о параметрах запуска читайте в справке к карте Visicom на диске - Visicom XML API.pdf)
Теперь карта запущена и должна реагировать на команды по TCP/IP которые поступают на IP=127.0.01, Port=377.
Для проверки, что карта запущена корректно, запустите браузер и наберите:
http://127.0.0.1:377
В ответ Вы должны получить счообщение в логе, о пришедшем запросе.
2. Для построения очереди запросов по расчетам необходима программа "Visicom координатор". Эта программа входит в состав инсталляционного пакета "Такси Диспетчер". Вы можете найти ее в "Пуск/Программы/Такси Диспетчер/ Visicom координатор".
Программа представляет собой прокси программу, которая работает по сети. Она может быть запущена на любом компьютере в сети. Для правильного функционирования нужна только одна запущенная программа.
Справа в программа необходимо настроить параметры, с которыми была запущена или может быть запущена карта Visicom:
Visicom - IP:Port - IP и Port на которые была запущена Visicom карта.
Запуск Визи кома - это параметры для повторного запуска Visicom XML API, если произошло закрытие карты посторонним человеком - тогда карта будет перезапущена по этим параметрам при запросе для расчета расстояния.
Слева указываться параметры TCP/IP сервера, на который обращаются все программы "Такси Диспетчер" для расчета расстояния.
Для примера установлены начальные значения:
IP = 127.0.0.1
Port=337
Server active - галочка установлена.
Для тестирования, что сервер запущен верно, можно набрать в строке браузера:
http://127.0.0.1:337
Тогда после запроса в логе программы "Visicom координатор" появиться строка:
"Получен неизвестный запрос"
Это обозначает, что сервер виден в сети и мы можем подключать к нему сами программы Такси Диспетчера.
3. Запускаем программу Такси Диспетчер.
В программе предусмотрена различные способы расчета расстояния для определения цены проезда. Поэтому, это нужно настроить.
1) Открываем настройки администратором.
2) Выбираем - "формированием цен"
3) Выбираем использование внешней библиотеки и выбираем библиотеку, которая по умолчанию находиться в каталоге "Такси Диспетчера" lib/visicom_server.dll и подключаем ее.
(Если у Вас есть другая программа/возможность создать функцию, которая по 2 адресам возвращает расстояние между ними - Вы можете написать свою библиотеку и подключить ее в Такси Диспетчер через это меню).
4) Теперь нам нужно настроить параметры этой библиотеки - настройка описана ниже
"Настройка visicom_server.ini".
Это файт cfg/visicom_server.ini:
[VisicomProxy]
;IP компьютера, на котором запущен "Координатор Visicom"
Host=127.0.0.1
;Порт
Port=337
;Использования кеширования при расчете (запоминать расчитанные адреса и не пересчитывать их)
UseCash=0
5) Для работы на других комп'ютерах, необходимо на каждом из них настроить указане параметры (путь к библиотеке и опции самой библиотеки).
Технические аспекты работы.
Для работы программе "Visicom координатор" необходимо создание базы данных с индексами улиц в текущей версии карты. При обновлении графа улиц карты, необходимо пересоздавать эту базу данных. Файлы данных находятся в каталоге "Такси Диспетчера" data/*.dat. Если у Вас этих файлов в начале нет, Вы можете их создать автоматически, или запросить у поддержки.
Для создания сначала нужно получить список улиц - "Файл/Создать базу улиц".
Далее, особенности создания карты Визикома, необходимо запустить процедуру "Удалить недоступные адреса". Она необходима потому что, адрес, указанный на карте (например для Киев - Гидропарк), но он не может быть использован для расчета - карта выдаст ошибку просчета расстояния при расчете.
Процедура долгая, поэтому она должна выполняться только один раз при инстляции новой версии карты.
Список улиц используемых на карте будет получен в файл streets.dat
Этот список улиц и должен быть включен в справочник улиц Такси Диспетчера.
Если будет запрошен расчет для каких-то других улиц, которые отличаются даже регистром, то улица будет не найдена, и соответственно расстояния не определено.
Замечание: Визиком может предоставить соотношение улиц к историческим районам при покупке карты Визиком XML API. На основании этих данных для программы Такси Диспетчер можно подготовить данные - отношение улиц к историческим районам для использования при работе "Такси Диспетчер".
Послесловие: Данный материал подготовлен на январь 2007 года. Разработка и поддержка карты Visicom XML API от компании Visicom происходит достаточно интенсивно и на текущий момент, Такси Диспетчер может иметь дополнительную функциональность.
Настройка visicom_server.ini
[VisicomProxy]
Host=127.0.0.1
Port=337
Это указание на IP и Port, на котором находиться программа "Visicom координатор". Все запросы этой библиотеки будут посылаться по этому адресу.
UseCash=0
Использование запоминания (кэш) при работе программы. Если Адрес1-Адрес2 была запрошена до этого, тогда библиотека не будет запрашивать повторно те же Адрес1-Адрес2, а просто возьмет результат их памяти. Это увеличивает скорость расчета, но увеличивает память, потребляемую программой.
Проверка доступности порта
Очень часто эта утилита используется для проверки доступности порт на этой машина.
Процедура
- Настраивается нужный порт
- Снимается ставиться галочка "Сервер активен"
- Набирается в браузере указанынй адрес : порт и производиться запрос.
http://127.0.0.1:337/
Если этот запрос получил VisicomProxy тогда в логе последняя строчка будет отбражаться как
"Получен неизвестный запрос".
Internet Explorer, предоставляют пустую страницу ошибки, FireFox, Opera дает
"Visicomproxy.exe: пустой запрос"..
- Это значит что запрос с локальной машины был получен портом.
- После этого нужно запустить просто в браузере на этот логин и паорт запрос в том же виде:
http://123.45.67.89:337
- Этот запрос должен действовать аналогично.
Редактирование улиц
Если Вам необходимо
- Добавить улицу, дом (новое название улицы, переименование).
- Удалить улицу/дом с которых не выполняется просчет.
Тогда:
Добавление улицы
- Добавляем название в справочник улицы
- Открываем утилиту VisicomProxy и в главном меню вызываем - "Добавить улицу".
- Вписываем новое название улицы (должно совпадать с тем, что мы добавили в справочник "Улицы") и выбираем улицу к которой привязать необходимо.
- Перезапускаем программу VisicomProxy.
Удаление дома
- Если карта визиком из какой-то точки не может просчитать маршрут, рекомендуется удалить этот дом - тогда просчет будет вестись от ближайшего дома.
- Открываем утилиту VisicomProxy и в главном меню вызываем - "Удалить дом".
- Выбираем необходимый дом и удаляем
- Перезапускаем программу VisicomProxy.
|
 |
|
|
|
|
|
|