Перейти к основному содержимому

Введение

Открытие шлагбаумов в приложении, где водитель/курьер работает с заказами значительно ускоряет его работу и позволяет избежать ошибок при открытии, поскольку доступ предоставляется только на те объекты, куда у водителя есть реальный заказ.

image

В общем виде принцип взаимодействия предоставлен на рисунке и выглядит следующим образом:

  1. API автопарка/службы доставки отправляет запрос на получение списка доступных устройств на указанных им адресах заказов.
  2. API TPSGate проверяет наличие устройств на адресах и в ответ отправляет список и тип устройств присутствующих на адресах, либо пустой список, при их отсутствии. Если список пуст, взаимодействие с сервисом заканчивается на этом этапе. Так же на этом этапе проверяется возможность открытия, путем проверки обязательных полей в теле запроса (5 цифр телефонного номера клиента, адрес и т.д.).
  3. API автопарка/службы доставки передает доступные устройства на адресе заказа в приложение водителя/курьера, сортирует их по удаленности и выводит кнопку «Открыть шлагбаум».
  4. Водитель/курьер, прибыв на адрес, нажимает кнопку «Открыть шлагбаум» и приложение отправляет в API автопарка/службы доставки запрос на открытие шлагбаума.
  5. API автопарка/службы доставки отправляет запрос к сервису TPSGate на открытие конкретного шлагбаума.
  6. API TPSGate проверяет валидность данных заказа, открывает шлагбаум и отправляет ответ об открытии шлагбаума.
  7. API автопарка/службы доставки передает в приложение курьера ответ об открытии шлагбаума.

Важные моменты

Как увеличить количество возвращаемых шлагбаумов

На примерно 30% адресов действуют более строгие правила безопасности, поэтому для получения доступа к открытию шлагбаума нам нужно сверить, что клиент к которому направляется водитель живет по данному адресу. Для этого в API следует передать 5 последних цифры номера телефона клиента - XXXXX (где XXXXX - реальные цифры телефона жильца для сверки). Надо присылать данные заказа вместе с номером жильца, по ним мы ищем нужную парковку со шлагбаумами, а также сверяемся, можно ли открывать шлагбаум, используя данный номер жильца. Если номер не подходит, то данные парковки со шлагбаумами не вернутся, соответственно кнопка для открытия шлагбаума, не должна отображаться. Это будет лучше, чем показывать водителю кнопку для открытия шлагбаума, который он не сможет открыть.

Несколько шлагбаумов на адресе

Когда несколько шлагбаумов на адресе, важно учесть, что бывают адреса, где рядом расположено несколько шлагбаумов. Лучше отображать шлагбаумы по удалённости от водителя/курьера, где ближайший будет первым в списке.

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

fun distance(): String {
if (location != null) {
val distanceResult = FloatArray(3)
Location.distanceBetween(
location.latitude,
location.longitude,
lat,
lon,
distanceResult
)
val dist = distanceResult[0].toInt()
return buildMeters(dist)
}
return TPSApplication.app.getString(R.string.looking_for_gps) // Поиск GPS
}

Когда отображать кнопку

Желательно учесть, чтобы кнопка "Открыть шлагбаум" вообще не отображалась или была не «кликабельной», если по адресу нет заказа, адрес без шлагбаума, адрес не подключен - во всех случаях, когда мы не передаем адрес для открытия. Это связано с тем, что видя кнопку "Открыть шлагбаум" водители пытаются на неё нажимать, если даже шлагбаума по данному адресу нет вообще).

Как показать информацию о шлагбауме

Мы передаем названия шлагбаумов, подробно как у нас они помечены и ещё фото адреса, а Вы уже решаете, что со своей стороны показывать это или нет. Рекомендуем учесть, что показывать адреса лучше так, как мы их передаем, т. к. если в названии адреса или расположении шлагбаума что-то меняется, мы это отображаем так, чтобы водителю было удобнее разобраться.

Что делать, если шлагбаум не открылся

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

Добавление кнопки "Открыть шлагбаум" в приложение

Ниже показаны варианты добавления кнопки “Открыть шлагбаум” в приложение для водителей.

image image image image image image