Appearance
API Geodata
Список маршрутів
| # | Метод | Маршрут | Опис | Необхідний рівень доступу |
|---|---|---|---|---|
| 1 | GET | /geo/topodata50/:codifier | Дані топографічної карти 1:50 000 | L1 |
| 2 | GET | /geo/community | Адміністративна прив'язка за координатами або КАТОТТГ | L1 |
| 3 | GET | /geo/elevation | Висота точки над рівнем моря | L1 |
| 4 | GET | /geo/unbreakability-points | Пошук найближчих пунктів незламності | L1 |
| 5 | POST | /geo/terrain-profile | Побудова профілю місцевості за лінією | L1 |
| 6 | GET | /geo/parcel | Інформація про земельну ділянку за кадастровим номером або координатами | L0 (з обмеженнями) |
| 7 | POST | /geo/query | Запит геоданих у точці за вказаним шаром | L1 |
| 8 | GET | /geo/info | Агрегована інформація в точці за доменами | L1 |
| 9 | GET | /geo/pzf | Інформація про природоохоронні території (ПЗФ) | L1 |
| 10 | GET | /geo/admin-boundaries | Отримання адміністративних меж за координатами | L1 |
| 11 | GET | /geo/social-objects | Пошук соціальних об'єктів навколо точки | L1 |
| 12 | GET | /geo/un-data | Дані ООН / ПРООН | L1 |
1. Дані топографічної карти масштабу 1:50 000
Метод: GET URL: /geo/topodata50/:codifierПрава доступу: L1
Параметри (Params):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
codifier | string | обов'язковий | Код КАТОТТГ території |
Параметри (Query):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
nocache | string | опціональний | Оновити кеш (наприклад "1") |
debug | string | опціональний | Режим налагодження (тільки для admin) |
Відповідь (200 OK)
json
{
"buildingCount": 342,
"miningsiteCount": 5,
"religiousbuildCount": 12,
"sportbuildCount": 3,
"vegetationArea": 125.6,
"standingwaterArea": 8.4,
"roadLength": 87.3,
"railwayLength": 12.5,
"monumentCount": 7,
"maxHeight": 287,
"settlementAreaSum": 15.2,
"powerLineLength": 23.8
}2. Адміністративна прив'язка за координатами або кодом КАТОТТГ
Метод: GET URL: /geo/communityПрава доступу: L1
Параметри (Query):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
lat | number | опціональний | Широта (0-90) |
lon | number | опціональний | Довгота (0-180) |
codifier | string | опціональний | Код КАТОТТГ (формат: UA + 15-20 цифр) |
Примітка: Має бути вказано або пару
lat/lon, абоcodifier
Відповідь (200 OK) - за координатами
json
{
"settlement": {
"name": null,
"codifier": null,
"type": null
},
"district": {
"type": "район",
"name": "Кропивницький",
"codifier": "UA35040000000034705"
},
"region": {
"type": "область",
"name": "Кіровоградська",
"codifier": "UA35000000000016081"
},
"community": {
"name": "Устинівська",
"isMilitaryArea": false,
"area": 944.25,
"codifier": "UA35040330000014430",
"children": [
{
"codifier": "UA35040330310046185",
"name": "Селіванове",
"area": "0.000019000000000000000000",
"type": "село"
},
{
"codifier": "UA35040330340033955",
"name": "Степове",
"area": "0.000112000000000000000000",
"type": "село"
}
],
"geom": {
"type": "MultiPolygon",
"coordinates": []
}
}
}Відповідь (200 OK) - за codifier
json
{
"settlement": {
"name": null,
"type": null,
"codifier": null
},
"district": {
"name": "Київський район",
"type": "район",
"codifier": "UA80000000000010002"
},
"region": {
"name": "Київська область",
"type": "область",
"codifier": "UA35000000000016081"
},
"community": {
"name": "Київська міська територіальна громада",
"codifier": "UA35040330000014430",
"area": 839.0,
"geom": {
"type": "Polygon",
"coordinates": [[[30.0, 50.0], [30.5, 50.0], [30.5, 50.5], [30.0, 50.5], [30.0, 50.0]]]
},
"children": [
{
"name": "Київ",
"type": "місто",
"area": 839.0,
"codifier": "UA80000000000000001"
}
]
}
}3. Висота точки над рівнем моря
Метод: GET URL: /geo/elevationПрава доступу: L1
Параметри (Query):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
lat | number | обов'язковий | Широта (0-90) |
lon | number | обов'язковий | Довгота (0-180) |
Відповідь (200 OK)
json
{
"results": [
{
"dataset": "mapzen",
"elevation": 201,
"location": {
"lat": 50,
"lng": 30
}
}
],
"status": "OK"
}4. Пошук найближчих пунктів незламності
Метод: GET URL: /geo/unbreakability-pointsПрава доступу: L1
Параметри (Query):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
lat | number | обов'язковий | Широта (0-90) |
lon | number | обов'язковий | Довгота (0-180) |
Відповідь (200 OK)
json
{
"unbreakability": [
{
"id": 3935,
"distance": 0.8259346561700001,
"geom": {
"type": "Point",
"coordinates": [
30.003473,
49.99292
]
},
"FID": 5111,
"number": 0,
"IDF": "21688",
"new_id": "4ba8c42f",
"Oblast": "Київська",
"ADMIN_2": "Білоцерківський",
"ADMIN_3": "Ковалівська",
"type_tg": "сільська територіальна громада",
"COD_TG": " ",
"COD_NP": " ",
"type_np": "село",
"Settlement": "Ковалівка",
"Address": "вул. Фастівська 23",
"Name": "Ковалівський академічний ліцей",
"type": "Школа/дитячий садочок",
"sector": "Пункти Незламності",
"generator": "так",
"Bulerjan": "ні",
"kotel": "так",
"star": "ні",
"opt": "так",
"grafic": "цілодобово",
"vid": "вже працює",
"zaryad": "так",
"pidzariadk": "Підзарядка гаджетів",
"primitka": "ПН на карту",
"y": 49.99292,
"x": 30.003473
}
],
"unbreakabilityBusiness": [
{
"id": 476,
"distance": 7.95926293764,
"geom": {
"type": "Point",
"coordinates": [
29.95638,
50.06581
]
},
"FID": 2644,
"number": 7112,
"IDF": "AZS0737",
"new_id": "AZS0737",
"Oblast": "Київська",
"ADMIN_2": "Фастівський",
"ADMIN_3": "Фастівська",
"type_tg": "міська територіальна громада",
"COD_TG": "UA32140150000040954",
"COD_NP": " ",
"type_np": " ",
"Settlement": "Фастів",
"Address": "вул Якубовського 62",
"Name": "WOG",
"type": "АЗК",
"sector": "Пункти Незламності відповідального бізнесу",
"generator": "так",
"Bulerjan": " ",
"kotel": " ",
"star": " ",
"opt": " ",
"grafic": " ",
"vid": " ",
"zaryad": "так",
"pidzariadk": "Підзарядка гаджетів",
"primitka": "ПН (бізнес)",
"y": 50.06581,
"x": 29.95638
}
]
}5. Побудова профілю місцевості
Метод: POST URL: /geo/terrain-profileПрава доступу: L1
Таймаут: 25 секунд
Параметри (Body):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
coordinates | string | обов'язковий | Рядок координат у форматі lon lat,lon lat,... (наприклад 30.0 50.0,31.0 51.0) |
Відповідь (200 OK)
json
{
"elevation": [
{
"altitude": 145.2,
"coordinates": [30.0, 50.0]
},
{
"altitude": 148.7,
"coordinates": [30.05, 50.05]
},
{
"altitude": 152.1,
"coordinates": [30.10, 50.10]
}
]
}6. Інформація про земельну ділянку за кадастровим номером або координатами
Метод: GET URL: /geo/parcelПрава доступу: L0 (з обмеженнями та rate limiting)
Обмеження швидкості:
minutely: до 20 запитів на хвилинуdaily: ліміт на день (конфігураційний)
Параметри (Query):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
cadNum | string | опціональний | Кадастровий номер (формат: 10 цифр:2:3:4) |
lat | number | опціональний | Широта (0-90) |
lon | number | опціональний | Довгота (0-180) |
token | string | опціональний | Токен доступу |
Примітка: Має бути вказано або
cadNum, або паруlat/lon
Відповідь (200 OK)
json
{
"cadnum": "3224985101:01:003:0356",
"category": "Землі сільськогосподарського призначення",
"purpose_code": "01.03",
"purpose": "01.03 Для ведення особистого селянського господарства",
"use": "для ведення особистого селянського господарства",
"area": "0.3613",
"unit_area": "га",
"ownershipcode": "100",
"ownership": "Приватна власність",
"ppoint": "POINT()",
"zoom_to": "POLYGON()",
"geom": {
"type": "MultiPolygon",
"coordinates": []
},
"category_code": "100",
"valuation_value": "",
"valuation_date": "",
"geom_text": "MULTIPOLYGON()",
"type": "dzk"
}7. Запит геоданих у точці за вказаним шаромPOST
Метод: POST URL: /geo/queryПрава доступу: L1
Параметри (Body):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
geometry | object | обов'язковий | GeoJSON геометрія точки |
geometry.type | string | обов'язковий | Тип геометрії (наприклад "Point") |
geometry.coordinates | array | обов'язковий | Координати [lon, lat] |
layer | string | обов'язковий | Назва шару для запиту (наприклад "parcel") |
Відповідь (200 OK)
json
{
"success": true,
"total": 1,
"data": {
"layerId": "parcel",
"layerName": "Земельні ділянки",
"id": "3899940423107348131",
"title": "3224985101:01:003:0356"
},
"rows": [
{
"layerId": "parcel",
"layerName": "Земельні ділянки",
"id": "3899940423107348131",
"title": "3224985101:01:003:0356"
}
]
}8. Агрегована інформація в точці за доменами
Метод: GET URL: /geo/infoПрава доступу: L1
Параметри (Query):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
lat | number | обов'язковий | Широта (0-90) |
lon | number | обов'язковий | Довгота (0-180) |
domains | string | обов'язковий | Домени через кому (наприклад "parcel,address") |
Відповідь (200 OK)
json
{
"success": true,
"total": 1,
"data": {
"layerId": "parcel",
"layerName": "Земельні ділянки",
"id": "3899940423107348131",
"title": "3224985101:01:003:0356"
},
"rows": [
{
"layerId": "parcel",
"layerName": "Земельні ділянки",
"id": "3899940423107348131",
"title": "3224985101:01:003:0356"
}
]
}9. Дані ПЗФ
Метод: GET URL: /geo/pzfПрава доступу: L1
Параметри (Query):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
lat | number | обов'язковий | Широта (0-90) |
lon | number | обов'язковий | Довгота (0-180) |
sql | string | опціональний | SQL-фільтр |
limit | number | опціональний | Ліміт записів (1-100) |
srid | integer | опціональний | SRID для геометрії |
Відповідь (200 OK)
json
{
"total": 1,
"rows": [
{
"pa_id": "3232334329002592255",
"wdpa_id": null,
"name_ua": "Ботанічний заказник місцевого значення «Черківщина»",
"name_en": null,
"name_legal": "Ботанічний заказник місцевого значення «Черківщина»",
"importance": "Local",
"category": "6",
"type": "3",
"active": true,
"date_yes": "2017-06-22 00:00:00",
"date_no": null,
"area": "32.4",
"area_i": null,
"area_ex": null,
"phone_ua": null,
"website": null,
"contact_facebook": null,
"pa_id_text": "0232UA0703022",
"geom": {
"type": "MultiPolygon",
"coordinates": []
},
"region": [
"65"
],
"is_within": false,
"distance_km": 14.954920039772702,
"line_distance": {
"type": "LineString",
"coordinates": []
},
"importance_data": {
"id": "Local",
"text": "Місцеве",
"icon": null,
"color": "#41ae76"
},
"type_text": "ботанічний",
"active_data": {
"id": "true",
"text": "Так",
"icon": null,
"color": "green"
},
"category_data": {
"id": "6",
"text": "заказник",
"icon": null,
"color": "#6a51a3"
},
"region_text": [
"Київська область"
]
}
]
}10. Отримання адміністративних меж за координатами
Метод: GET URL: /geo/admin-boundariesПрава доступу: L1
Параметри (Query):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
lat | number | обов'язковий | Широта (0-90) |
lon | number | обов'язковий | Довгота (0-180) |
debug | string | опціональний | Режим налагодження (тільки для admin) |
Відповідь (200 OK)
json
{
"region_id": "8870140591529698",
"name_ua": "Паляничинці",
"object_type": "C",
"codifier": "UA32020070050038776",
"area": 3.17,
"geom": {
"type": "MultiPolygon",
"coordinates": []
},
"parent": "18501076278620054",
"object_status": "1",
"info_json": null,
"koatuu": "3224985101",
"parent_level1": "65",
"parent_level2": "2392155055118616277",
"parent_level3": "18501076278620054"
}11. Пошук соціальних об'єктів навколо заданої точки
Метод: GET URL: /geo/social-objectsПрава доступу: L1
Параметри (Query):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
lat | number | обов'язковий | Широта (0-90) |
lon | number | обов'язковий | Довгота (0-180) |
limit | number | опціональний | Ліміт записів (1-100) |
units | string | опціональний | Одиниці виміру (m або km) |
radius | number | опціональний | Радіус пошуку |
nocache | string | опціональний | Оновити кеш (наприклад "1") |
without_data | string | опціональний | Без даних |
Список шарів, що досліджуються:
primary_care_network- заклади первинної медичної допомогиsocial_services- соціальні послугиfire_rescue_units- пожежно-рятувальні підрозділиstate_rescue_units- державні аварійно-рятувальні підрозділиsocial_services_agencies- агенції соціальних послугinclusive_resource_centers- інклюзивно-ресурсні центриsport_facilities- спортивні споруди
Відповідь (200 OK)
json
{
"rows": [
{
"id": "4088",
"point": {
"x": "29.98727649450302",
"y": "49.99815936415962"
},
"dist": "0.9324",
"data": {
"name": "ПЗ Паляниченці",
"layer": "Мережа первинної медичної допомоги",
"address": null
}
}
]
}12. Дані ООН / ПРООН
Метод: GET URL: /geo/un-dataПрава доступу: L1
Параметри (Query):
| Параметр | Тип | Обов'язковість | Опис |
|---|---|---|---|
nocache | string | опціональний | Оновити кеш (наприклад "1") |
Відповідь (200 OK)
json
{
"cache": false,
"count": 426,
"rows": [
{
"undp_id": "3454638800490202936",
"region_name": "Київська",
"region_codifier": "UA32000000000030281",
"district_name": "Вишгородський",
"district_codifier": "UA32100000000065867",
"community_name": "Іванківська",
"community_codifier": "UA32100050000082904",
"settlement_name": "Яхнівка",
"settlement_codifier": "UA32100050810034142",
"build_count": "910",
"build_area": "30.30",
"image_count": "1",
"transfer_phase": "Перша фаза",
"path_raster": "Yakhnivka.tif",
"path_vt": "Yakhnivka_polygon.geojson",
"path_vt_centroid": "Yakhnivka_centroid.geojson",
"address": null,
"cdate": "2024-09-11 11:34:08.061363",
"preview": null,
"url_metadata": "/metadata-list/3454638800490202936",
"extent": [
"29.633762826000066",
"50.812355799000045",
"29.640590858000053",
"50.816895801000044"
],
"link": "/api/tiles/undp_3454638800490202936/{z}/{x}/{y}.png"
}
]
}Коди помилок
| Код | Назва | Опис |
|---|---|---|
| 400 | Bad Request | Некоректний запит (невірний формат параметрів) |
| 403 | Forbidden | Доступ заборонено (невірний токен, заблокований користувач) |
| 404 | Not Found | Ресурс не знайдено |
| 422 | Unprocessable Entity | Помилка валідації схеми запиту |
| 429 | Too Many Requests | Перевищено ліміт запитів |
Примітки
- L0 - публічний доступ з обмеженнями (тільки
/geo/parcel) - L1 - доступ для авторизованих користувачів
- Координати приймаються у форматі WGS84 (EPSG:4326)
