...
{ "CurrentPage": 1, "TotalPages": 5, "PageSize": 100, "TotalCount": 480, "HasPrevious": false, "HasNext": true }
| Поле | Тип | Описание |
|---|---|---|
CurrentPage | int | Текущая страница |
TotalPages | int | Всего страниц |
PageSize | int | Размер страницы |
TotalCount | int | Всего записей |
HasPrevious | bool | Есть предыдущая страница |
HasNext | bool | Есть следующая страница |
Цикл получения данных
Общая последовательность: получить список источников → определить тип и формат слоя → запросить данные соответствующим эндпоинтом.
...
GET api/v1/public/Config/FeatureSources/RoadEntity/{dataSourceId} → RoadEntityFeatureSourceConfigDto.
Важны FeatureConfig и FeatureConfig.EntityName. По FeatureConfig известно, как называются поля сущности и по каким полям доступна фильтрация. EntityName используется как {entityName} в маршрутах шага 6.
Подробное описание структуры FeatureConfig (группы полей, типы, поля-связи) — в FeatureConfig.
4. Конфигурация слоя (стиль)
...
StyleProperties(string[]) — поля, необходимые для отрисовки. При запросе данных достаточно передать только эти поля (через параметрFields, строкой через запятую), чтобы уменьшить ответ.StyleConfigs(LayerStyleConfigDto[]):Style— стиль для mapbox (JSON),Order,Name.- Прочие поля:
Legend,ZIndexGroupType,LayerType,LayerSourceType.
...
Важно поле Type: Geojson либо Pbf — оно определяет способ получения данных в шаге 6. Значения приходят в PascalCase (перечисление LayerSourceFormatClassifier). Также есть SourceConfig (JSON).
6. Получение данных
| Источник | Формат (Type) | Эндпоинт |
|---|---|---|
| RoadEntity | Geojson | POST api/v1/public/EntityData/RouteData/{entityName}/All |
| RoadEntity | Pbf | GET api/v1/public/Layer/tile/vector/{entityName}/{dataSourceId}/{z}/{x}/{y}.pbf |
| RoadAccidents | — | POST api/v1/public/RoadAccidents/layer/{dataSourceId} |
RouteDataController (RoadEntity, Geojson)
...
- Query (
EntityDataParameters):DataSourceId,Fields,IsReverse,PageNumber,PageSize,OrderBy. - Тело: массив
FilterContainer(см. Фильтрация). - Абстрактный эндпоинт: работает с 400+ сущностей, конкретная выбирается по
{entityName}. - Используется как для отображения на карте, так и для карточки объекта.
- Совместно с
FeatureConfig(шаг 3) известно, какие поля возвращаются и по каким доступна фильтрация. - Поля-связи возвращаются как идентификаторы. Пример: у автобусной остановки поле
routeId— чтобы показать читаемое значение, нужно запросить все дороги, построить словарьid → значениеи подставить его на фронте.
...
Query (FeatureQueryControllerDto):
| Параметр | Тип | Описание |
|---|---|---|
FilterId | Guid? | Идентификатор ранее зарегистрированного фильтра |
NotIn | Guid[] | Исключить фичи по Id |
Fields | string | Список полей через запятую (для уменьшения ответа) |
Метаданные слоя
GET api/v1/public/Layer/meta/{entityName}/{dataSourceId}?filterId= → LayerMeta: Count (число фич) и Extent (полигон — охват слоя).
...
Структура FilterContainer (NextFilterLogicOperationType, FilterType, Value), список фильтров, логические операции и правила описаны в Фильтрация.