Поиск и маршруты

Поиск мест

Запрос → список совпадений → выбор места → координаты для карты или маршрута.

1. Выполните поиск

Клиент возвращает список, а не готовую карточку организации. Покажите названия и адреса в своём интерфейсе; после выбора используйте coordinates.

import { PlacesClient } from "@umap-llc/map-react/places";
const places = new PlacesClient({
  styleUrl: "YOUR_STYLE_URL",
  accessToken: "YOUR_ACCESS_TOKEN",
});
const result = await places.search({
  q: "Байтерек",
  city: "astana",
  limit: 5,
  offset: 0,
});
for (const place of result.items) {
  console.log(place.name, place.address ?? "", place.coordinates);
}

2. Параметры запроса

ПолеОписание
qНазвание или адрес.
cityastana или almaty; ограничивает город.
limit / offsetРазмер страницы и смещение; limit от 1 до 60.
boundsОбласть поиска: [west,south,east,north]; во Flutter — MapBounds.
centerЦентр для сортировки: [долгота,широта]; во Flutter — Coordinate.
categoryИдентификатор категории.
accessibleТолько доступные места при true.

3. Что возвращается

Следующую страницу запрашивайте с offset + limit, пока это значение меньше total. Не выбирайте items[0], пока не проверили, что список не пуст.

ПолеТип и смысл
itemsМассив PlaceSearchItem; пустой массив — совпадений нет.
items[].id / nameИдентификатор и название.
items[].coordinates[долгота,широта], WGS84. Во Flutter — Coordinate.
items[].addressАдрес; может отсутствовать.
items[].category / categoryTitleИдентификатор категории и название.
total / limit / offsetВсего найдено, размер и смещение страницы.
Полный JSON примера ↗

4. Подсказки во время ввода

suggest использует тот же формат ответа, что search. В собственной форме добавьте задержку 250–350 мс и отменяйте предыдущий запрос при новом вводе.

const result = await places.suggest({ q: "Байтерек", city: "astana" });
// result.items — до 7 подсказок.

Дальше: маршрут к выбранному месту

Передать координаты в RoutingClient →Полный пример поля поиска →