Что такое поиск населенного пункта

Как наладить поиск адреса по координатам (и где взять нужный справочник)

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта

Весной мы добавили в API DaData.ru фичу «Обратное геокодирование», она же «Адрес по координатам». Название намекает: метод принимает геокоординаты и отдает данные об адресе.

Солидный продукт с той же функциональностью предлагает «Яндекс» — он называется «Геокодер». Но сервис «Яндекса» бесплатен только для открытых некоммерческих проектов. Стандартный же тариф — от 120 000 ₽ в год — подходит не всем.

Мы подумали — если сделать бесплатную или недорогую альтернативу «Геокодеру», разработчики наверняка скажут спасибо. И сделали. В статье расскажу, как устроен «Адрес по координатам»: как мы наладили поиск, собрали справочник и упаковали в готовый метод.

Где берем данные и чем ищем адрес

Подступаясь к задаче, мы изучили готовые решения: где взять справочник координат с адресами и как потом искать по этому справочнику географические объекты. Оказалось, за нужными инструментами даже не придется далеко ходить.

Адресные объекты берем в ФИАС — Федеральной информационной адресной системе. Это самый полный из открытых и официальных адресных справочников. Подробно о нем мы уже писали на «Хабре», а сейчас важны четыре факта:

Координаты загружаем из OpenStreetMap (OSM). OSM — проект со свободной лицензией: энтузиасты собирают координаты всевозможных объектов и выкладывают для всех желающих.

Если по-простому, OSM — это набор точек, линий и полигонов на карте. У каждого объекта свое описание, тип и набор координат. Данные OSM для России лежат по адресам needgeo.com, osm.sbin.ru/osm_dump/ и osmosis.svimik.com/latest/.

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта
Список источников публикуют на специальной странице в «Вики» проекта

Выгрузки состоят из PBF-файлов — этот формат используют вместо XML как более компактный. Превратить PBF в OSM XML ничего не стоит, с этим справится куча одобренных сообществом утилит.

Для собственного справочника мы берем адресные объекты из ФИАС, а затем ищем их координаты в OSM. Если нашли, сохраняем объединенные данные. Получается такое пересечение ФИАС и OSM.

И все это замечательно, но есть одна проблема: с качеством данных в OSM дела обстоят непросто. Координаты объектов часто не соответствуют реальности. Например, полигоны для регионов и районов адекватны. А для городов и ниже — уже не очень.

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта
Полигоны — это многоугольники, ограничивающие площади на карте. Они состоят из связанного набора точек с координатами. Полигонами обозначают границы регионов, районов, городов и даже зданий

Основная работа, и с большим отрывом — собрать из OSM адекватные данные и отсеять брак. Задача настолько объемная, что я отвел под нее в статье отдельный раздел.

Дома, которых нет в ФИАС, загружаем тоже из OSM. Выше я уже говорил, что в ФИАС отсутствуют десятки тысяч домов. Это даже не проблема, а просто реальность, фон. Поэтому мы пополняем свой справочник домами из OSM. Но только теми, для которых в ФИАС существует улица. У пришедших из OSM зданий нет ФИАС ID, поэтому мы идентифицируем их как ФИАС-код родителя + номер дома.

По справочнику ищем с помощью прекрасного Lucene — нашего многолетнего помощника. За наводку спасибо сведущему индийцу, написавшему пост Indexing Geographical Data With Lucene (хорошее дополнение — материал A dive into spatial search algorithms — о k-d-деревьях, на которых построен алгоритм поиска).

Как только мы узнали об у́дали Lucene, проблема с поиском решилась почти сама. Делов осталось — пройтись наждачкой.

Как собрали базу координат и адресов

Для начала выложу багаж: прочитав статью, быстро сделать подобный справочник не получится. Мы собираем его с 2014 года, постоянно дополняя. Об этом чертовски длинном пути я и расскажу.

Самое сложное при составлении справочника — перебрать кординаты, которые пришли из OSM. На старте мы выверяли их как могли, в том числе руками. Главная цель тогда — получить опорные точки в крупных городах и сделать из них эталонный справочник. Теперь, когда таких точек много, проверять новые данные вручную почти не приходится. За раз мы добавляем в эталонный справочник 200 000–300 000 адресов с координатами, и вот как это делаем.

Формируем из OSM-тегов полные адреса́. В OSM-выгрузках составные части адресов разбросаны по разным тегам:

Прогоняем каждый новый адрес через API стандартизации «Дадаты». Сервис приводит адреса к единому формату «Как в ФИАС»:

142718, Московская обл, Ленинский р-н, с Булатниково, ул Центральная, д 103.

АдресФИАС IDШиротаДолгота
142718, Московская обл, Ленинский р-н, с Булатниково, ул Центральная, д 103a8b6a52f-e96d-4ec3-a0ff-641013ab044555.55877337.667103
119034, г Москва, пер Турчанинов, д 6 стр 28c925e61-9173-48b3-999e-dc85c86d89e755.73709637.597190

Разбираем адреса, которые «Дадата» не стандартизовала. Адреса́, которые не получилось сопоставить с ФИАС, сервис помечает флажком. Их проверяем вручную, вариантов здесь несколько.

Проверяем, насколько адекватны загруженные координаты. Для этого специальной утилитой смотрим, попадают ли координаты нового объекта в полигон родительского региона или района. Если адрес сообщает, что объект находится в Омской области, будь добр по координатам попадать в ее полигон. Вхождения в город не требуем — не все города точно освещены в OSM, для многих данные не обновляют.

Эталонные полигоны мы загружаем из OSM и храним как есть — в формате GeoJSON. Чтобы выбрать, к какому полигону примерить точку, смотрим в отдельную таблицу. В ней мы сопоставили префиксы КЛАДР-кодов и ID полигонов: находишь для адреса КЛАДР-код и видишь, какой полигон выбрать.

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта
КЛАДР-код — это уникальный идентификатор, который использовали еще до появления ФИАС. Находить этот код для адреса умеет миллион сервисов

Утилита разрешает объекту отстоять от положенного полигона на 1 700 метров. Это правило добавили из-за шоссе, которые часто выходят за границы региона. Но расстояние больше 1 700 метров — признак ошибки, так говорит статистика.

На этом для городов и улиц проверка заканчивается.

Еще раз, построже, проверяем загруженные координаты домов. В дело снова вступает упомянутая утилита, и вот что она делает.

Проверку проходят только дома, которые удалены от надежных коллег не более чем на 150 метров. Причем каждый новый одобренный дом мы учитываем при разборе следующих. Вот как это работает.

Допустим, в эталонном справочнике хранятся дома № 1, 2 и 3 по улице Коммунаров. В новых данных пришли дома № 5, 6 и 7 по той же улице. Судя по координатам, новые дома стоят рядом. Утилита видит, что дом № 5 находится рядом с домами № 1, 2 и 3 и добавляет его в эталонный справочник. Значит, дома № 6 и 7 тоже проходят проверку.

А дальше решается судьба пришедших из OSM данных:

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта
В первой таблице — все объекты c ФИАС ID до домов: регионы, населенные пункты, улицы. Во второй — дома́ и ссылка на родителя из первой таблицы

Две таблицы нужны, чтобы назначить ключи отсутствующим в ФИАС домам. У них нет собственного ФИАС-кода, поэтому делаем вот как:

Справочник готов, осталось протестировать. За ночь прогоняем сервис по функциональным тестам и тестируем производительность. Скорость проверяем на Москве, запрашивая все дома в радиусе трех километров. Чтобы уж наверняка. Конечно, обложили все автотестами.

Главное после обновления — чтобы не стало хуже.

Обратное геокодирование глазами пользователя

На вход метод принимает три параметра: координаты, количество результатов и радиус поиска. Радиус по умолчанию — 100 метров, максимальный — километр. Точное значение задают в настройках.

Обратно метод возвращает найденные объекты: дома, улицы и населенные пункты. При этом сортирует их по убыванию точности.

После всех этих рокировок метод наконец-то возвращает объекты, которые нашел.

Внутри — много разного о найденных объектах: строки с полным и сокращенным адресом, актуальное и устаревшие названия, почтовый индекс, ФИАС-код родительского объекта и так далее.

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта
Все данные, которые отдает метод — в документации

Покрытие по координатам для разных регионов разное, вот так с домами:

Уже думаем, что добавить к методу: разрешить фильтрацию по типам объектов, возвращать расстояния до заданной точки, еще что-нибудь. Следим за спросом и решаем, вкладывать ли силы.

А в остальном все уже на проде. До 10 000 запросов в сутки — бесплатно, больше — по подписке от 5 000 ₽ в год. Если нужны адреса по координатам для коммерческого проекта, а «Геокодер» слишком дорог — попробуйте API «Дадаты».

Оригинал статьи опубликован в блоге HFLabs.

Источник

База данных населённых пунктов России

Да, ещё одна. И совсем не всех. Эта база данных вовсе не собирается хвастаться десятками тысяч строк. Как раз наоборот: цель — предоставить необходимый минимум. Естественно, необходимость использовать справочник населённых пунктов есть во многих проектах. И получить полную БД можно легко и просто из ФИАС. Так зачем же нужен этот «велосипед»?

Вряд ли кто-то не в курсе про ФИАС fias.nalog.ru/Updates — если не принимать во внимание некоторые ошибки (циклы по NEXTID, несколько актуальных записей одного объекта без PREVID и т.п.), которые иногда возникают и относительно оперативно устраняются по запросу, то лучшего источника нет. Однако, в своём продукте хочется сделать все красиво и удобно: например, изначально при простом поиске отсеять небольшие населённые пункты — а такой информации в ФИАС, к сожалению, нет. Перейти к более простой двухуровневой иерархии: населённый пункт внутри региона — никаких муниципальных районов. Возможно ли? На практике оказалось, что да (небольшая демонстрация в поисковой строке сайта). Если мы возьмём населённые пункты с более 1000 жителями, то получим охват примерно в 89% населения.

В общем, короткое введение закончилось и представляю небольшой open data проект – населённые пункты РФ с численностью населения более 1000 человек. Каждая запись содержит идентификатор ФИАС – по нему сопоставляется ОКТМО, ОКАТО (которые часто меняются); часовой пояс – если у вас есть оповещение по СМС, польза очевидна; ссылка на статью Википедии, откуда получена информация о численности населения и координатах.

Небольшие очевидные замечания:

Источник

GeoTree.ru — все населенные пункты и муниципальные образования России

В настоящее время в Российской Федерации существует более 150 тысяч населенных пунктов, более 18 тысяч городских и сельских поселений, более 2300 муниципальных районов и городских округов.

Функция сервиса GeoTree.ru — предоставление подробной информации обо всех населенных пунктах и муниципальных образованиях России c помощью Web-API. Web API — способ взаимодействия программ между собой, при котором данные передаются по протоколу HTTP, как правило, в формате JSON.

Фильтрация и сортировка объектов возможна по ряду параметров: наименование, географическое положение, код ОКТМО, тип объекта, административное значение, численность населения, площадь и другие.

Комбинирование различных параметров поиска позволяет решить множество задач:

На главной странице сайта GeoTree.ru представлена карта с демонстрацией возможностей.

Для проверки функции автозаполнения начните вводить имя объекта в текстовом поле. Первыми будут предложены объекты, находящиеся ближе к центру карты. При выдаче результатов автозаполнения для каждого объекта будет указано расстояние до него.

Для определения населенного пункта или муниципального образования по геоточке передвиньте карту на нужный объект. Будет предоставлена информация о точке, находящейся в центре карты: населенный пункт или поселение, округ/район, субъект РФ, код ОКТМО. Если точка не относится к какому-либо населенного пункту, то будет указано название ближайшего населенного пункта и расстояние до него.

На карте отображаются объекты, находящиеся ближе к центру карты. По выбору пользователя могут быть отображены следующие типы объектов: все населенные пункты, города и посёлки городского типа, только города, городские и сельские поселения, муниципальные районы и городские/муниципальные округа, субъекты РФ.

Также можно установить фильтрацию по численности населения, например, отображать населенные пункты численностью более 1000 чел.

Если навести курсор на отображаемый объект, появится всплывающая подсказка с именем и численностью населения.

По умолчанию включена функция теплокарты. Объекты, численность которых выше, среди отображаемых обозначены красным цветом.

Крупным сетевым компаниям:

подбор ближайшего офиса или пункта выдачи в соответствии с населенным пунктом, который указал пользователь.

возможность привязки объекта к любому населенному пункту России (теперь не требуется самостоятельно создавать и хранить свой справочник населенных пунктов, GeoTree выполнит эту работу).

Для поиска рынков сбыта любой продукции:

информация о населении России, теплокарта населения (отображение объектов на карте цветом, зависящим от количества населения).

Разработчикам сайтов и приложений для автомобилистов и путешественников:

информация о текущей геоточке и ближайших населенных пунктах.

Разработчикам систем бухгалтерского, налогового, банковского учета:

быстрый ввод кода ОКТМО.

Для государственных информационных систем:

Продавец желает продать дом в посёлке Маяк Искитимского района Новосибирской области. Сервис GeoTree.ru поможет быстро и без ошибок указать данный населенный пункт.

Если пользователь размещает объявление через мобильное приложение и сам находится в этом населенном пункте, то населенный пункт будет определен с помощью GPS.

Если пользователь находится в соседнем населенном пункте или пользуется web-сайтом, тогда его местоположение будет определено приблизительно, но как только он начнет вводить первые буквы населенного пункта, то сервис GeoTree предложит нужное значение с учетом сортировки результата по расстоянию. Например, если местоположение пользователя определено как центр Новосибирска, то при вводе букв «мая» будет предложено нужное значение: посёлок Маяк.

Если пользователь находится далеко от искомого объекта, то для поиска нужно ввести имя самого объекта и вышестоящих объектов (возможно указать и тип). Пример: «маяк новоси», «маяк и», «маяк посёлок и» и т.д. Когда пользователь выбрал нужное значение, в информационную систему поступает полная информация об указанном населенном пункте, в том числе, и информация о вышестоящих объектах: область, район, сельское поселение.

На основе полученной информации продаваемый товар автоматически заносится в категорию: «Новосибирская область > Искитимский район > Совхозный сельсовет > посёлок Маяк» и может быть найден в любой из подкатегорий.

Источник

Новый сервис онлайн-карт и поиск по базе населённых пунктов

Уважаемые участники и гости портала «Родная Вятка»! Представляем Вашему вниманию новый сервис для работы с онлайн-картами. Он позволяет на одной странице сайта просматривать все геопривязанные старые карты, а также осуществлять просмотр всей базы населённых пунктов и выполнять удобный интеллектуальный поиск по ней. При создании сервиса использована технология «API Яндекс.Карт».

Попробовать новые карты в действии можно ссылке: https://rodnaya-vyatka.ru/places

Изначально на нашем портале было разработано два инструмента для поиска населённых пунктов — поиск по карте (выбор района, а затем населённого пункта в составе района по карте или из списка) и поиск по названию. Практика показала, что при использовании этих инструментов иногда возникают некоторые неудобства. Так, пользователи не всегда знают расположение той или иной исчезнувшей деревни в современных границах, а кроме того, в пределах одного района зачастую существовало множество селений со схожими названиями. Поэтому для более точного поиска приходится перемещаться по страницам сайта и сравнивать старые и современные карты. Поиск по названиям не всегда бывает удачным, поскольку многие населённые пункты переименовывались, и не все варианты названия внесены в заголовок искомой страницы.

Чтобы сделать работу с информацией на сайте более удобной, ещё три года назад мы начали обсуждать разработку новой платформы для работы с картами и геопривязанной информацией. Промежуточные результаты этой работы были представлены на презентации в Герценке 12 апреля текущего года. На встрече создателей портала «Родная Вятка» и представителей краеведческого сообщества города Кирова была проведена презентация бета-версия нового геоинформационного сервиса. И вот сейчас мы готовы её представить и предложить для использования всем пользователям портала.

Новый сервис предназначен для работы с населёнными пунктами и старыми картами в едином интерфейсе. Больше не нужно просматривать метки населённых пунктов для каждого района в отдельности и открывать каждую старую карту в новом окне. Теперь — всё в одном месте. Кроме того, появился «умный» поиск по населённым пунктам, расположенный прямо на обзорной карте.

При открытии обзорной карты перед вами появляются границы регионов с кластерами-диаграммами, отображающими количество добавленных на сайт населённых пунктов. Цвета круговых диаграмм показывают соотношение количества существующих (красным цветом) и исчезнувших (синим цветом) сёл, деревень и городов.

Нужно отметить, что в географию портала полностью включены три региона РФ: Кировская область, Удмуртская Республика и Республика Марий Эл. Остальные регионы представлены частично — доступны для добавления населённых пунктов только те районы, которые ранее полностью или частично входили в Вятскую губернию, а также некоторые другие населённые пункты, исторически связанные с нашим регионом.

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта

Управление масштабом карты осуществляется при помощи колёсика мыши или графического ползунка. При увеличении масштаба (при увеличении детализации) появляются границы административных районов и появляются соответствующие им кластеры-диаграммы. Также как и для регионов, эти диаграммы показывают статистику по населённым пунктам.

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта

При дальнейшем приближении карты вместо диаграмм будут появляться значки населённых пунктов. На меньшем масштабе подписаны будут только сёла, посёлки и города, но, увеличивая карту, пользователи увидят подписи у всех остальных типов населённых пунктов.

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта

Из прочих возможностей карты обязательно нужно упомянуть поиск по карте и наложение старых карт. По этим разделам есть подробная справка на самой карте (при нажатии на Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта), поэтому расскажем лишь основное.

Поиск по карте осуществляется не только по основному названию или его части, но и по всем связанным с населёнными пунктами базам. Например, мы ввели в поиск «Антоновичи», а искомый населённый пункт называется Антоновцы (Антона Багаева). Однако в Книге Вятских Родов у этой деревни есть ещё и вариант названия Антоновичи, поэтому в результаты поиска она всё равно попадёт. При наведении на деревню в списке результатов линией будет показано, о какой метке на карте идёт речь. Это особенно удобно, когда результатов поиска много.

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта

Как уже было сказано, старые карты теперь можно просматривать в этом же интерфейсе. При нажатии на переключатель «Старые карты» отображается список карт, доступных для отображаемой на экране территории. Для реализации этой функции для каждой карты заранее задана «полезная» область — часть листа карты, на которую нанесены границы, населённые пункты и любые географические данные. При открытии списка автоматически вычисляется, какие старые карты своей «полезной» областью попадают в видимую часть окна. Остальные можно просто не выводить в список. Это упрощает быстрый выбор только нужных карт.

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта

Для удобства все карты разделены на две вкладки: крупномасштабные Подробные карты, содержащие информацию о населённых пунктах (уездные, районные карты, карты РККА, сельсоветов и т.п.), и мелко- и среднемасштабные Обзорные, дающие представление об административно-территориальном делении (регионы, уезды).

Сам раздел Старые карты претерпел изменения: теперь все ссылки на карты ведут на новый интерфейс (исключение — карты без географической привязки). Обсуждения карт перенесены на форум.

Новая карта подключена и в других разделах, где ранее выводились интерактивные карты с метками населённых пунктов, например на страницах сёл и деревень, на страницах сельсоветов и других административно-территориальных единиц в списках населённых пунктов. Это значит, что на таких страницах теперь тоже доступен просмотр старых карт для выбранной области.

Разработку нового сервиса онлайн-карт выполнил Иван Зыков.

Пишите нам обо всех проблемах и пожеланиях. Приятной работы!

Источник

Публичная кадастровая карта России на 02.12.2021

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта

Что такое поиск населенного пункта. Смотреть фото Что такое поиск населенного пункта. Смотреть картинку Что такое поиск населенного пункта. Картинка про Что такое поиск населенного пункта. Фото Что такое поиск населенного пункта

Объект по этим данным не найден

На карте показываются только участки, для которых сделано межевание (т.е. измерены точные координаты углов).

Поэтому возможны 4 причины, по которым участка на карте нет

Объект по этому номеру не найден

Проверьте правильность кадастрового номера.

Он должен указываться с двоеточиями, и содержать 4 группы цифр. Например, 77:08:0009005:8

Или воспользуйтесь нашим расширенным поиском

Объект по этому номеру не найден

Проверьте правильность кадастрового номера.

Он должен указываться с двоеточиями, и содержать 4 группы цифр. Например, 77:08:0009005:8

Или воспользуйтесь нашим расширенным поиском

Объект по этому адресу не найден

Нужно указать более точный адрес.

Адреса бывают сложные, поэтому точнее найти объект по кадастровому номеру. Посмотрите его в документах. Например, 77:08:0009005:8

Или воспользуйтесь нашим расширенным поиском

Поделиться ссылкой на карту

Почему нет участка на кадастровой карте?

На карте показываются только участки, для которых сделано межевание (т.е. измерены точные координаты углов).

Распечатать карту

На публичной кадастровой карте вы можете найти любой земельный участок или объект капитального строительства, который поставлен на кадастровый учёт в Единый государственный реестр недвижимости и для которого проведена процедура межевания.

По клику на участок карты вы узнаете кадастровый номер объекта, площадь, назначение, год постройки (для дома) и можете перейти к просмотру всех доступных электронных отчетов.

На земельный участок и здание можно прямо на сайте получить отчет об объекте, отчет о переходе прав и отчет о кадастровой стоимости.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *