RU
EN
ГЛАВНАЯ СТРАНИЦА

Данные для геокодирования

Запрос данных геокодирования

Тип

POST

Вызов

/get-geo-data?conception-id=23B2306E-611D-574F-8260-42430F966D2F&time=2018-05-17T23:31:00

Параметры

conception-id

Идентификатор концепции ресторанов, существующей в базе данных. Обязательный параметр.

time

Время отложенного звонка. Необязательный параметр.

Тело запроса

Обязательный параметр.

<Address><Village></Village><Street></Street><House></House></Address> 

Формат контента

"Content-Type: application/xml; charset=UTF-8"

Поддерживаемые геокодеры

  • Яндекс,

  • Google,

  • OpenStreetMap,

  • Here.

Пример тела запроса

<Address><Village>Санкт-Петербург</Village><Street>гражданский пр</Street><House>119</House></Address> 

Пример вызова

http://89.22.216.169:8090 /get-geo-data?conception-id=23B2306E-611D-574F-8260-42430F966D2F&time=2018-05-17T23:31:00

Формат возвращаемых данных

Список GeoIdentifiers и Divisions для указанной концепции.

Пример

{ 
  "Precision": "number", 
  "RequestedAddressInfo": "Санкт-Петербург, Улица: Гражданский проспект; Дом: 116", 
  "GeoIdentifiers": [ 
    { 
      "GeoIdentifier": "Спб_дп_просвещения_87", 
      "WorkTimeBegin": 660, 
      "WorkTimeEnd": 1350, 
      "WorkDayWeekBegin": "Fri", 1 
      "WorkDayWeekEnd": "Fri", 2 
      "RegionID": 601,
      "Hit": true, 
      "Division": "9D8F4BA3-825D-E441-89BE-6BDDF4391D3F", 
      "CookingTime": 1800, 
      "DeliveryTime": 900
    } 
  ],
  "Location": { 
    "Latitude": 60.034978, 
    "Longitude": 30.418186 
  }, 
  "Divisions": [ 
    { 
      "GeoIdentifier": "Спб_дп_большевиков_3", 
      "DivisionID": "765FDA14-B027-A441-979A-62717DCDE47C", 
      "Distance": 13458
    },
1

Возвращается, если у карты есть настройки временных диапазонов дней недели.

1

Возвращается, если у карты есть настройки временных диапазонов дней недели.

Дополнительно

  1. Если параметр времени time не передается, будет использовано время сервера приложений, с которым работает сервис. Если время передается, то оно будет использовано без каких-либо сдвигов (как передано) и из него будет вычитаться время доставки и готовки. Подразделения, которые не попадают по результату в диапазон работы будут исключены из результата.

  2. В параметр <Village></Village> теперь всегда нужно передавать название целевого населенного пункта для того, чтобы адрес определялся корректно. Если Village не передавать, нет гарантии, что геокодер вернет адрес в нужном городе.

    Например,

    <Address><Village>Санкт-Петербург</Village><Street>Науки</Street><House>14</House></Address>

Принцип работы с картами

При запуске сервиса производится поиск геокодера точки обслуживания по умолчанию (dev_ID точки обслуживания хранится в настройках стыка).

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

В противном случае при запросе данных геокодирования (get-geo-data) возвращается ошибка «К точке обслуживания не подключен геокодер».

Основные моменты работы

  • При каждом изменении в справочнике устройств идет повторная выгрузка карт.

  • Если геокодер отключить от точки обслуживания по умолчанию - карты в сервисе будут зачищены (в реализации на данный момент).

  • Если геокодер подключить - сервис тут же совершит выгрузку карт подключенного геокодера.

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

Решение проблем

Если при запросе get-geo-data возникает ошибка «К точке обслуживания не подключен геокодер», а геокодер подключен к точке обслуживания по умолчанию, нужно изменить что-либо в справочнике устройств, чтобы карты выгрузились. Если это не помогло, нужно проверить корректность карт (пропущенные кавычки и так далее).

Обычно запуск геокодера POS помогает выявить проблему с корректностью карт.

Работа с OpenStreetMap

  1. Для передачи в адрес буквы здания в AddressFormat устройства нужно добавить параметр {Letter}, а к телу запроса добавить элемент

    <Letter></Letter>
  2. Крайне желательно, чтобы параметр AddressFormat {Building} содержал «к».

  3. Обязательна расшифровка сокращений в настройках устройства вида:

    AddressReductions = ( 
      Улица = ул, у 
      Проспект = пр ... 
    )

Запрос списка городов

Тип

GET

Вызов

/get-cities

Параметры

Без параметров

Пример вызова

http://89.22.216.169:8090/get-cities 

Формат возвращаемых данных

[ 
  { "id": "Saint-Petersburg" }, 
  { "id": "Moscow" }, 
  ... 
] 

Запрос списка улиц

Тип

GET

Вызов

/get-streets

Параметры

city

Идентификатор населенного пункта (из списка городов).

Пример вызова

http://89.22.216.169:8090/get-streets?city=Saint-Petersburg

Формат возвращаемых данных

[ 
    { 
        "street": "10-й кв-л", 
        "village": "п.Песочный"  
    }, 
    { 
        "street": "10-я  В.О. линия"  
    }, 
    ... 
    { 
        "street": "10-я линия", 
        "village": "г.Павловск, снт.Звездочка"  
    }, 
    ... 
]