API Автобусных рейсов

 
Это API создавалось для коммуникации с Барнаульским 1C модулем и сейчас не должно использоваться или отдаваться клиентам так как оно работает только в плане назначения на рейс
Прогноз прибытия не был реализован, Отсылка сообщений на URL не производится так как сильно тормозила систему.
 
Пример
https://<address>/api/etraffic/api.php
 
POST параметры:
  • сmd - команда , возможные варианты.
  • SetLine - создать новый рейс
  • SetControl - назначить автобус на рейс.
  • UnsetControl - удалить назначение на рейс.
  • BindControl -привязать.
  • UnbindControl -отвязать.
  • Data - данные в формате JSON.
 
Форматы данных и описание для разных команд:
Команда позволяет завести новый автобусный маршрут со всеми остановками в систему Pilot
данные в поле
Data:
{
 "account_id": "3008",   // Номер договора (цифра)
 "bidirectional": 1,    // Рейс друнаправленный (туда-обратно) 1 или 0
 "description": "Маршрут №9",  // Описание рейса (текст)
 "label": "123",    // Дополнительная метка рейса (текст)
 "name": "Маршрут №9",  // Нащвание рейса (текст)
 "number": "12304",      // Номер рейса (текст или цифра)
 "type_id": 0,    // Тип рейса (type_id : 0 -автобус, 1-троллейбус, 2 - трамвай, 3 -маршрутка)
 "uid": "dhqwdh"  // Уникальный идентификатор рейса (текст)
 "points": [  // Массив со списком остановочных пунктов
    {
     "lat": "45.0207",  //Широта центра остановки (десятичная цифра)
     "lon": "33.9993",  //Долгота центра остановки (десятичная цифра)
     "name": "Аэропорт__",   //Название остановки
     "price": 15.35,   //Стоимость проезда от предыдущей остановки (десятичная цифра)
     "radius": "91",  //Радиус в метрах (цифра )
     "silent": 0, //Запрет отправки сообщений от событий на этой остановки (1 или 0)
     "stop_type": 0, //Тип остановки 0 - обычная, 1 - техническая (пассажиры не считаются) 2 - конечная (счетчик обнуляется - все выходят)
     "ts": 600, //Время прибытия на остановку относительно предыдущей остановки в секундах (цифра)
     "te": 700,  //Время стоянки на остановке в секундах (цифра)
     "uid": "819897e2-843b-11e4-bf52-002354656fea" //Уникальный идентификатор остановки (текст)
    },
    {
     "lat": "44.9078",
     "lon": "34.0784",
     "name": "7я горбольница",
     "price": 15.35,
     "radius": "90",
     "silent": 0,
     "stop_type": 0,
     "te": 1000,
     "ts": 900,
     "uid": "819897e8-843b-11e4-bf52-002354656fea"
     }
  ]
}
 
 
Создание привязки транспортного средства к автобусной линии. В интерфейсе это делается так:
 
 
{
"uid": "121e1e1e12",   // Уникальный идентификатор привязки (текст)
"imei": "12304",  //  IMEI транспортного средства (текст)
"lineuid": "2e23e23e2e", // Уникальный идентификатор маршрута (текст)
"ts": "1392294840", // Время начала действия привязки
"te": "1392321600", // Время окончания действия привязки (пустое если без ограничения)
"message_url":"http://example.com/message.php",   // URL на который шлются сообщения от автобуса
 (дверь открылась, автобус прибыл на остановку, вошло такое-то количество пассажиров).
"prognoze_url":"http://example.com/prognoze.php", // URL на который шлется прогноз прибытия на остановку
}
 
Удаление привязки транспортного средства к автобусной линии.
 
{
   "uid": "qiwduhqiwdqkdqkn"  // Уникальный идентификатор привязки (текст)
}
 
 
  • Команда - комбинация команд setLine и bindControl. 
Создается автобусный маршрут и к нему привязывается транспортное средство.
 
{
"uid": "qiwduhqiwdqkdqkn", //Уникальный идентификатор рейса (текст)
"ts": "1392294840",  // Время начала действия привязки
"te": "1392321600",   // Время окончания действия привязки (пустое если без ограничения)
"name": "test",  // Название рейса (текст)
"imei": "359772039289781",  // IMEI транспортного средства (текст)
"number":"861A"  // Номер рейса (текст или цифра)
"message_url":"http://example.com/message.php",   // URL на который шлются сообщения от автобуса (дверь открылась, автобус прибыл на остановку, вошло такое-то количество пассажиров)
"prognoze_url":"http://example.com/prognoze.php", // URL на который шлется прогноз прибытия на остановку
"points": [
{
"uid": "1", //Уникальный идентификатор остановки и привязки (текст)
"lat": "53.352142",  //Широта центра остановки (десятичная цифра)
"lon": "83.758749",  //Долгота центра остановки (десятичная цифра)
"name": "Барнаульский автовокзал",      //Название остановки
"radius":"50",  //Радиус в метрах (цифра )
"stop_type":0,  //Тип остановки 0 - обычная, 1 - техническая (пассажиры не считаются) 2 - конечная (счетчик обнуляется - все выходят)
"price":15.35 //Стоимость проезда от предыдущей остановки (десятичная цифра)
},
{
"uid": "2",
"lat": "52.534012",
"lon": "85.178777",
"name": "Бийский автовокзал",
"radius":"100",
"stop_type":0,
"price":15.35
}
]
}
 
 
Удаление привязки установленной командой setControl
 
{
   "uid": "qiwduhqiwdqkdqkn"  // Уникальный идентификатор привязки (текст)
}
 
 
Формат данных присылаемый на URL оповещения.