Стандартизация адресов

Адреса из записей источников справочника клиентов проходят процесс стандартизации, чтобы получить:

Поддерживается стандартизация адресов Украины и Казахстана, путем ручного выбора субъекта из иерархии страны. В будущем планируем добавить поддержку обработки и других стран СНГ.

Общие сведения

API стандартизации адресов является отдельным модулем SellOut+, поэтому имеет отличия в формате по отношению к существующим описаниям.
API доступен по адресу https://app.sellout.plus/api/data-quality/geo/client/geosync.
Способ авторизации и таймаут не изменились.

Стандартизированная адресная строка

Стандартизированная адресная строка — это эталонное написание адреса. Оно получается путём объединения данных из поля Description таблицы Geography и номера дома из поля House таблицы GeographyObjectRecord. Также полная адресная строка хранится в поле GeographyObjectRecord/FullAddress.

Географическая иерархия

Географическая иерархия позволяет разбить любой адрес на составляющие, определить, что в нем является городом, улицей и субъектом. Эти данные хранятся в таблице Geography — она представляет собой parent-child иерархию, где на нижнем уровне будет улица, родителем для улицы — город и так далее.

В качестве примера разберем адрес Россия, г. Воронеж, ул. Ленина д. 17:

  • ул. Ленина — нижний уровень.

  • г. Воронеж — родитель для ул. Ленина и других улиц города, содержащихся в справочнике.

  • Воронежская область — родитель для г. Воронеж и других географических объектов области, содержащихся в справочнике.

Для удобства работы мы вывели денормализованные поля:

  • ID_ParentLevel1 — уровень административно-территориального или федеративного устройства: субъект РФ, республика, край и т.д.

  • ID_ParentLevel2 — уровень городов. Если адрес является не городской территорией, то проставляется значение из ID_ParentLevel1.

Коды ОКАТО и ФИАС GUID

В поле Attributes таблицы Geography хранится перечисление ссылок на доступные классификаторы для записи географической иерархии. На данный момент поддерживаются классификаторы: ОКАТО и ФИАС GUID.
Данные еженедельно обновляются из Росстата и ФНС.

Районы и округа города

Для крупных городов России поддерживается муниципальное деление. Районы и округа города хранятся в отдельной таблице CityDistrict, они определяются по исходному адресу из таблицы GeographyObjectRecord. Район города определен корректно, если статус координат - Утверждено или Утверждено автоматически. В остальных случаях, корректность определения района необходимо проверить.

Спецификация

GET /geographyObjectRecord

Параметры:

  • Take — количество записей.

  • RowVersion — максимальная версия записи из последней выгрузки.

  • Fields — поля, которые необходимо получить. По умолчанию возвращаются поля из таблицы ниже.

GeographyObjectRecord Стандартизация адресов

FieldTypeDescription
ID* PK
int
Уникальный идентификатор записи SO+
ID_Record*
int
Ссылка на запись, адрес которой проходит стандартизацию
ObjectCode*
varchar(max)
Объект стандартизации
ID_Geography
Geography
int
Географическая иерархия
ID_Status
Status.status
tinyint
Статус обработки адреса
ID_GeospatialStatus
GeospatialStatus
tinyint
Статус координат
ID_CityDistrict
CityDistrict
int
Районное деление города
Address*
varchar(max)
Адрес источника (исходный)
House
varchar(50)
Номер дома
Latitude
varchar(12)
Широта (координата)
Longitude
varchar(12)
Долгота (координата)
FullAddress
varchar(1000)
Стандартизированный адрес
Comment
varchar(2000)
Комментарий оператора к адресу
RowVersion*
binary
Версия записи
AddrAttributes
nvarchar(100)
Атрибуты адреса

GET /status

Параметры:

  • Fields — поля, которые необходимо получить. По умолчанию возвращаются поля из таблицы ниже.

Status Статус стандартизации адреса

FieldTypeDescription
ID* PK
int
Уникальный идентификатор записи SO+
Code
varchar(5)
Код
Name
varchar(255)
Наименование
Description
varchar(250)
Описание

GET /geospatialStatus

Параметры:

  • Fields — поля, которые необходимо получить. По умолчанию возвращаются поля из таблицы ниже.

GeospatialStatus Статус координат

FieldTypeDescription
ID* PK
int
Уникальный идентификатор записи SO+
Code*
varchar(100)
Код
Name*
varchar(255)
Наименование

GET /geography

Параметры:

  • Take — количество записей.

  • Country — фильтрация данных по стране. Используется поле Alfa3Code из таблицы country. Значение по умолчанию — RUS.

  • RowVersion — максимальная версия записи из последней выгрузки.

  • Fields — поля, которые необходимо получить. По умолчанию возвращаются поля из таблицы ниже.

Geography Географическая иерархия

FieldTypeDescription
ID* PK
int
Уникальный идентификатор записи SO+
ID_GeographyType
GeographyType
int
Тип географии
Name
varchar(500)
Наименование
Description
varchar(1000)
Описание
ID_Parent
Geography
int
Родительская запись
ID_Country
Country
int
Страна
FlagActive*
bit
Признак активности записи
RowVersion*
binary
Версия записи
ID_ParentLevel1
Geography
int
Родительская запись первого уровня
ID_ParentLevel2
Geography
int
Родительская запись второго уровня
Attributes
array
Дополнительные атрибуты

GET /geographyType

Параметры:

  • Fields — поля, которые необходимо получить. По умолчанию возвращаются поля из таблицы ниже.

GeographyType Тип географии

FieldTypeDescription
ID* PK
int
Уникальный идентификатор записи SO+
Code
varchar(255)
Код
Name
varchar(255)
Наименование
FlagActive*
bit
Признак активности записи

GET /country

Параметры:

  • Fields — поля, которые необходимо получить. По умолчанию возвращаются поля из таблицы ниже.

Country Страна

FieldTypeDescription
ID* PK
int
Уникальный идентификатор записи SO+
Code*
varchar(3)
Код
ShortName*
varchar(100)
Наименование
FullName*
varchar(1000)
Наименование
Alfa2Code*
varchar(2)
Код альфа-2
Alfa3Code*
varchar(4)
Код альфа-3
FlagActive*
bit
Признак активности записи

GET /cityDistrict

Параметры:

  • Fields — поля, которые необходимо получить. По умолчанию возвращаются поля из таблицы ниже.

CityDistrict Районы города

FieldTypeDescription
ID* PK
int
Уникальный идентификатор записи SO+
ID_GeographyCity*
Geography
int
Город из географической иерархии
ID_GeographyType*
GeographyType
int
Тип географии
ID_Parent
CityDistrict
int
Родительская запись (округ города)
Name*
varchar(500)
Наименование
OKATO
varchar(11)
Код из справочника ОКАТО РФ