Текущая версия SDK Pullenti Address: 4.27 от 27 октября 2024 года

SDK Address C#
SDK Address Java
SDK Address Python3
SDK Address JavaScript (Node.js)

Сервер Address (.NET Core)
App
Демо-стенд Address (под Windows)
App
Индекс ГАР (77 регион)
Gar Index (от 18.10.2024)

Замечания по использованию

Использование документации - распаковать архив и запустить index.html в любом браузере. Эта же самая документация есть на вкладке Документация.
Использование кода в своём проекте - см. раздел "Использование SDK" на вкладке Overview документации. Для каждого языка zip-архив кода содержит коды самого Pullenti Address и код простого консольного приложения Demo, использующего SDK. В конечный проект нужно добавлять только папку Pullenti, без консольного кода.

Индекс объектов ГАР

Объекты ГАР ФИАС, с которыми работает SDK Address, располагаются в индексе ГАР. Архив индекса 77-го региона (Москва) можно скачать здесь. Индекс для всей России входит в коммерческую версию SDK. Для работы демо-примера нужно распаковать индекс ГАР в папку, указанную в документации (или в любое локальное место, а папку подправить в коде Program).

Изменения в версиях

4.27

  • Загружены GPS из Open Street Map (подробности см. в документации), они добавляются в параметры ГАР-объектов и получаются по ключу GarParam.GpsOsm (точки) и GpsAreaOsm (прямоугольники).
  • Классы GpsPoint и GpsRectangle переделаны в один класс GpsObject.
  • В целом улучшено качество выделения.
4.26
  • В поисковые параметры SearchParams добавлено поле FullText для реализации поискового механизма по ГАР-объектам как и на сайте Налоговой: вводим начало адреса, в выпадающем списке варианты, выбираем вариант, который заносится в поисковое поле, далее вводим следующий адресный элемент и т.д.
  • В поиске по значениям атрибутов поддержали ObjectId (числовой идентификатор ГАР-объекта).
  • В целом улучшено качество выделения.
4.25
  • Загружены GPS из Росреестра, подробности см. в документации. Добавлены классы GpsPoint и GpsRectangle.
  • В целом улучшено качество выделения.
4.24
  • Добавлен класс AddressDbRecord, который предлагается использовать для представления нормализованных адресов в реляционной СУБД с возможностью последующего поиска SQL-запросами. Подробности в документации.
  • Начался процесс поддержки координат GPS - пока есть для около трети регионов.
  • В целом улучшено качество выделения.
4.23
  • В индексе поддержаны переименования улиц и населённых пунктов (эта информация берётся из КЛАДР формата dbf, которая также выкладывается на сайте ФНС и информация о чём отсутствует в xml-версии).
  • Также улучшено выделение адресов советского периода, где всякие АССР и т.п.
  • Учтены некоторые специфические случаи, например, когда не указывают населённый пункт, но при этом есть почтовый индекс.
  • В адресах встречается ситуация, когда в одном поле ввода 2 адреса (например, прописки и проживания) - такие случаи теперь обрабатываются и второй адрес заносится в поле SecondAddress класса TextAddress.
  • И в целом улучшено качество выделения.
4.21
  • Переделаны алгоритмы работы со зданиями и помещениями. В RoomAttributes добавлено поле string Misc, в которое помещается возможная специфика (например, "пом.10 моп" в Misc запишется "МОП" - место общего пользования).
  • Функция GetObjects у AddressService переименована в GetChildrenObjects.
  • Поддержали некоторую специфику адресов Киргизии.
  • Улучшено качество выделения.
4.19
  • Вместо класса DetailParams у AddrObject теперь поля DetailTyp и DetailParam, моделирующие относительные указатели (типа "на 100 м. юго-восточнее"), а все остальные дополнительные элементы (этажи, а/я, индексы и пр.) теперь заносятся в словарь Params у всего адреса TextObject
  • Улучшено качество выделения (на около 800 тыс. присланных разных примерах).
4.18
  • Вместо функций Get/SetDefaultGarObject введён класс ProcessTextParameters, экземпляр которого подаётся вторым параметром в функции обработки (null - пустые значения). В нём можно указывать номера регионов по умолчанию и дефолтовый объект.
  • Улучшено качество выделения (особенно экзотических объектов).

Необязательность индекса ГАР

SDK работает не только с российскими адресами! Поэтому индекс ГАР не обязателен для работы SDK - адреса будут выделяться и нормализовываться без индекса. Но при этом не будет делаться сопоставление объектам ГАР и соответствующая корректировка (например, в названии улицы допустили ошибку, но алгоритм сопоставил с улицей из ГАР и исправил ошибку при нормализации).
Если аналог российского ГАР существует или удастся получить для других стран, то поддержим его!

Координаты GPS

Объекты ГАР изначально не содержат GPS координат. Мы расширили атрибуты ГАР-объектов такими координатами, которые удалось получить из двух источников - публичной кадастровой карты (ПКК) Росреестра и Open Street Map (OSM).
Более 70% объектов ГАР (дома и зем. участки) имеют кадастровые номера, и они пополняются от версии к версии. По кадастровому номеру в ПКК можно получить JSON-файл, и он может содержать координаты GPS! Процент покрытия зависит от региона - для Москвы около 63% объектов имеют координаты, для большинства это 20-30%. Для улиц, населённых пунктов и городов прямоугольники GPS вычисляются по координатам GPS дочерних элементов (если есть).
К сожалению, Росреестр не выкладывает эти данные, как делает ФНС с ГАР, а предлагает их получать по одному не чаще 1 раза в секунду. Мы проделали эту работу и скачали данные, ссылку на них выложим здесь в ближайшее время.

В версии 4.27 загрузили GPS из OSM - дополнительно около 6.3 млн. домов. Подробности этого небольшого подвига планируем изложить в статье на Habr.

Размещение и корректировка кода

Актуальный код находится только на этом сайте. Мы ничего не размещаем в GitHub и не поддерживаем актуальность на каких-либо внешних ресурсах.
Отметим, что это - генерируемый код, поэтому вносить изменения в него не стоит, так как следующая версия кода перезатрёт эти изменения. О замеченных ошибках и доработках лучше сообщать разработчикам. Огромное спасибо всем, кто присылает такие замечания!

Присылайте адреса!

Просьба ко всем, у кого есть коллекции адресов - поделитесь! Мы на них отлаживаем и совершенствуем алгоритмы. Присылайте в Excel, CSV или TXT (один адрес в строке).