Геокодер - сервис, который позволяет определять координаты по адресу объекта (прямое геокодирование) и наоборот, определять адрес объекта по его координатам (обратное геокодирование).
Мы сделали такой сервис, работающий на большей части территории РФ на основе объединенного адресного плана и технологии робот-картограф.
Сегодня начнем разговор, который растянется на несколько публикаций.
Мы все знакомы с геокодированием на практике:
Хороший геокодер - востребованный инструмент. Широко известны сервисы геокодирования от Яндекса, 2ГИС, Дадаты, а так же Nominatim - «поиск по OpenStreetMap».
Робот-Картограф стремится сделать еще более качественный геокодер: полнее по данным и возможностям, удобнее по условиям использования - мы видим простор для конкуренции.
Сначала дадим не совсем строгие определения основных понятий. "Канонические" определения можно найти, например, в Федеральном законе от 28.12.2013 N 443-ФЗ https://www.consultant.ru/document/cons_doc_LAW_156575/,
Мы сделали такой сервис, работающий на большей части территории РФ на основе объединенного адресного плана и технологии робот-картограф.
Сегодня начнем разговор, который растянется на несколько публикаций.
Мы все знакомы с геокодированием на практике:
- набираем адрес в приложении-навигаторе, и он прокладывает путь до места;
- нажимаем на неизвестное здание на карте и узнаем его адрес;
- составляем табличку с адресами чего-нибудь (школ, поликлиник, библиотек), запускаем специальные сервисы или отдаем специалистам, получаем от них слой с объектами на карте , пригодный для геоанализа доступности.
Хороший геокодер - востребованный инструмент. Широко известны сервисы геокодирования от Яндекса, 2ГИС, Дадаты, а так же Nominatim - «поиск по OpenStreetMap».
Робот-Картограф стремится сделать еще более качественный геокодер: полнее по данным и возможностям, удобнее по условиям использования - мы видим простор для конкуренции.
Сначала дадим не совсем строгие определения основных понятий. "Канонические" определения можно найти, например, в Федеральном законе от 28.12.2013 N 443-ФЗ https://www.consultant.ru/document/cons_doc_LAW_156575/,
Что такое «адрес»?
Адрес - текстовая инструкция, позволяющая найти пространственный объект на местности.
В записи инструкции используется структура пространства - административно территориальное деление (регионы, элементы организации планировочной структуры (улицы, реже кварталы).
Адрес не является самодостаточной инструкцией. Это не географические координаты: чтобы применить адрес, нужно иметь знания о территории. Если таких знаний недостаточно, адрес может быть полезен с приблизительной точностью - до улицы, населенного пункта. И чем больше знаний, тем быстрее и точнее решается задача.
В записи инструкции используется структура пространства - административно территориальное деление (регионы, элементы организации планировочной структуры (улицы, реже кварталы).
Адрес не является самодостаточной инструкцией. Это не географические координаты: чтобы применить адрес, нужно иметь знания о территории. Если таких знаний недостаточно, адрес может быть полезен с приблизительной точностью - до улицы, населенного пункта. И чем больше знаний, тем быстрее и точнее решается задача.
Что такое «хороший адрес»?
Главное качество - адрес должен однозначно идентифицировать объект.
Подробность, структурность, полнота, отсутствие сокращений и опечаток - важны, но второстепенны.
На один и тот же объект реального мира можно указать супер-подробным адресом:
Подробность, структурность, полнота, отсутствие сокращений и опечаток - важны, но второстепенны.
На один и тот же объект реального мира можно указать супер-подробным адресом:
Самарская область, Волжский муниципальный район, сельское поселение Дубовый Умет, село Дубовый Умет, улица Советская, дом 137, отделение Почты России
Или таким:
Самарская обл, Волжский район, Дубовый Умет, Советская, 137
Или даже таким:
Дубовый Умет, отделение Почты
Это всё - хорошие адреса, потому что однозначно идентифицируют объект. В России только одно село Дубовый Умет, и в нем единственное отделение Почты.
В этом смысле, даже абсурдная строка "дом 90-ы" может считаться хорошим адресом!
А вот адреса:
В этом смысле, даже абсурдная строка "дом 90-ы" может считаться хорошим адресом!
А вот адреса:
Самарская обл, Волжский район, Советская, 137
Самарская обл, Дубовый Умет, 137
Самарская обл, Волжский район, сельское поселение Дубовый Умет, отделение Почты России
плохие, не однозначные, несмотря на кажущуюся подробность.
В этом смысле (однозначность без строгой структуры) усматривается аналогия системы адресов с арабской системой имен - почитайте, интересно.
В этом смысле (однозначность без строгой структуры) усматривается аналогия системы адресов с арабской системой имен - почитайте, интересно.
Что можно считать эталоном геокодера?
Ну, например, почтальонов с навигатором.
Они хорошо знают местность (свою, ограниченную) и могут найти место даже по отрывочным сведениям и передать координаты.
На уровнях от населенных пунктов и выше ошибок немного благодаря избыточности признаков (топонимы и индексы).
При записи части адреса внутри населенного пункта начинается "самое веселое", так как есть улицы с повторяющимися названиями, есть синонимы, есть литеры и корпуса,
В почтовой системе тоже нет предварительной валидации, у вас не откажутся принять письмо с адресом "Самарская область, село Кукуево, площадь Дель Дуомо, дом 21", лишь бы он не был пустым. Но допустимым будет ответ "адресат не найден" после прохождения через систему.
Но мы, всё же, используем не живой интеллект, а разрабатываем алгоритм, так что придется действовать несколько иначе. О двух алгоритмах - в следующей серии.
Они хорошо знают местность (свою, ограниченную) и могут найти место даже по отрывочным сведениям и передать координаты.
На уровнях от населенных пунктов и выше ошибок немного благодаря избыточности признаков (топонимы и индексы).
При записи части адреса внутри населенного пункта начинается "самое веселое", так как есть улицы с повторяющимися названиями, есть синонимы, есть литеры и корпуса,
В почтовой системе тоже нет предварительной валидации, у вас не откажутся принять письмо с адресом "Самарская область, село Кукуево, площадь Дель Дуомо, дом 21", лишь бы он не был пустым. Но допустимым будет ответ "адресат не найден" после прохождения через систему.
Но мы, всё же, используем не живой интеллект, а разрабатываем алгоритм, так что придется действовать несколько иначе. О двух алгоритмах - в следующей серии.
Мы формально поставили себе задачу разработки алгоритма и сервиса геокодера таким образом
Алгоритму дается набор данных объемом примерно в 100 млн записей: идентификатор, адрес, другие признаки места, географические координаты.
Могут встречаться неполные и неточные значения признаков, но среди всей совокупности записей нет дублей.
Допустимо, если алгоритм потребует времени для предварительного обучения.
Входные параметры: адрес в виде строки.
Допускается пакетная обработка, до 1 млн адресов в пакете.
Выходные параметры:
Время работы алгоритма должно укладываться в 50 мс на адрес.
Могут встречаться неполные и неточные значения признаков, но среди всей совокупности записей нет дублей.
Допустимо, если алгоритм потребует времени для предварительного обучения.
Входные параметры: адрес в виде строки.
Допускается пакетная обработка, до 1 млн адресов в пакете.
Выходные параметры:
- идентификатор записи, которая наиболее точно и однозначно соответствует запрошенному адресу
- мера сходства: точное, до соседних домов, до улицы, до населенного пункта, отсутствие совпадений
Время работы алгоритма должно укладываться в 50 мс на адрес.
Попробовать геокодер в числе первых
Геокодер в Роботе-Картографе долгое время был внутренним инструментом, сейчас мы начинаем предлагать его как часть сервиса, в виде визуального интерфейса и как API.
Если хотите попробовать геокодер в числе первых - напишите нам в комментарии или по любым контактам в подвале https://rk.geosamara.ru/
Если хотите попробовать геокодер в числе первых - напишите нам в комментарии или по любым контактам в подвале https://rk.geosamara.ru/