Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

{ "CurrentPage": 1, "TotalPages": 5, "PageSize": 100, "TotalCount": 480, "HasPrevious": false, "HasNext": true }
ПолеТипОписание
CurrentPageintТекущая страница
TotalPagesintВсего страниц
PageSizeintРазмер страницы
TotalCountintВсего записей
HasPreviousboolЕсть предыдущая страница
HasNextboolЕсть следующая страница

Цикл получения данных

Общая последовательность: получить список источников → определить тип и формат слоя → запросить данные соответствующим эндпоинтом.

...

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)Эндпоинт
RoadEntityGeojsonPOST api/v1/public/EntityData/RouteData/{entityName}/All
RoadEntityPbfGET api/v1/public/Layer/tile/vector/{entityName}/{dataSourceId}/{z}/{x}/{y}.pbf
RoadAccidentsPOST 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):

ПараметрТипОписание
FilterIdGuid?Идентификатор ранее зарегистрированного фильтра
NotInGuid[]Исключить фичи по Id
FieldsstringСписок полей через запятую (для уменьшения ответа)

Метаданные слоя

GET api/v1/public/Layer/meta/{entityName}/{dataSourceId}?filterId=LayerMeta: Count (число фич) и Extent (полигон — охват слоя).

...

Структура FilterContainer (NextFilterLogicOperationType, FilterType, Value), список фильтров, логические операции и правила описаны в Фильтрация.