Прив'язка точок до дорог /snaptoroad
Snap to Road приймає список точок отриманих від супутникових систем навігації (GNSS) у вигляді широти, довготи, зібраних впродовж маршруту, та повертає список точок, що формують маршрут, прив'язаний до доріг на карті. Ви також можете використовувати інтерполяцію по заданих точках. Тоді відповіддю буде лінія, що відповідає геометрії дороги.
Цей запит може бути важливою частиною при розробці систем стеження, а саме при візуалізації отриманих супутникових даних.
Схема запиту
https://api.visicom.ua/data-api/5.0/core/snaptoroad.json?[points][&interpolate][&mode][&key][&callback]
Параметри запиту
| Параметр | Опис | 
|---|---|
| points|p | Масив координат точок. Точка задається широтою та довготою у вигляді lng,lat. Символ|— роздільник точок у списку. Максимальна кількість точок - 250 | 
| interpolate|l | Чи необхідна інтерполяція точок до линії, що повторює повну геометрію дороги з урахуванням перехресть та тунелів. У цьому випадку відповідь буде містити об'єкт LineString. За замовчуванням false. | 
| mode|m | Режим прив'язки точок. Може приймати значення driving(по автомобільним дорогам, приймається за замовчуванням) абоwalking— усі дороги. | 
| separate | s | При зазначеному параметрі кожна точка в запиті розглядається окремо і не враховуються попередні точки ( interpolate- ігнорується навіть якщо вказано). Можна використовувати і коли потрібно прив'язати кілька пристроїв до доріг в одному запиті. За замовчуваннямfalse. | 
| key | Ключ авторизації. | 
| callback | Ім'я функції для JSONP запиту до сервера. | 
Приклад запиту
https://api.visicom.ua/data-api/5.0/core/snaptoroad.json?points=30.36277,50.51605|30.49667,50.49508|30.59761,50.45226|30.51383,50.44789&interpolate=true&key=YOUR_API_KEY
Відповідь на запит
Структура відповіді на запит snaptoroad залежить від значення параметру interpolate  та кількості переданих точок.
Передана одна точка, за любого значення параметру interpolate.
{ 
	"type": "Feature",
	"geometry": {
		"type": "Point", 
		"coordinates": [
			30.42615,
			50.45119
		]
	}
}
У відповіді повертається GeoJSON-об'єкт типу Feature. У полі geometry міститься об'єкт типу Point з координатами, що прив'язані до дороги.
interpolate = false (за замовчуванням) та передано декілька точок
{ 
	"type": "FeatureCollection",
	"bbox": [
		30.42615,
		50.44802,
		30.44679,
		50.45716
	],
	"features": [
		{
			"type": "Feature",
			"geometry": {
				"type": "Point", 
				"coordinates": [
					30.42615,
					50.45119
				]
			}
		},
		{
			"type": "Feature",
			"geometry": {
				"type": "Point", 
				"coordinates": [
					30.43615,
					50.46119
				]
			}
		},
		{
			"type": "Feature",
			"geometry": {
				"type": "Point", 
				"coordinates": [
					30.44615,
					50.47119
				]
			}
		}
	]
}
У відповіді повертається GeoJSON-об'єкт типу FeatureCollection. Поле features містить масив об'єктів типу Feature з полем geometry типу Point. Кожна точка містить координати, що прив'язані до дороги.
interpolate = true та передано декілька точок
{
    "type": "Feature",
    "geometry": {
        "type": "LineString",
        "coordinates": [
            [
                30.42615,
                50.45119
            ],
            [
                30.42749,
                50.45097
            ],
            [
                30.42674,
                50.44899
            ],
            [
                30.43016,
                50.44846
            ],
            [
                30.43318,
                50.44802
            ],
            [
                30.43347,
                50.44879
            ],
            [
                30.4339,
                50.44997
            ],
            [
                30.43456,
                50.45171
            ],
            [
                30.43622,
                50.45597
            ]
        ]
    },
    "bbox": [
        30.42615,
        50.44802,
        30.44679,
        50.45716
    ]
}
У відповіді повертається GeoJSON-об'єкт типу Feature. У полі geometry міститься об'єкт типу LineString з координатами маршруту, що проходить через прив'язані до доріг точки.
Демо
Ви можете поставити точки клікнувши по карті.