как искать адрес по координатам
Как найти адрес по координатам широты и долготы на Яндекс.Картах и Google Maps
Картографические сервисы, в последнее время, набирают все большую популярность. Наиболее востребованные из них разработаны гигантами интернет индустрии, компаниями Google и Яндекс. С их помощью можно найти город, найти нужное место и узнать, как к нему лучше добраться, а также сделать другие полезные вещи. Например, зная координаты можно узнать, что там находится.
Как правильно вводить координаты в строку поиска Google Maps
Сначала давайте разберемся, как нужно вводить координаты в картографический сервис от компании Google. Существует три варианта ввода:
При вводе значений координат нужно соблюдать следующие правила:
Эти правила действуют как для десктопной версии Google Maps, так и для мобильного приложения.
Как искать место по координатам на картах
В общем случае, для поиска места по известным координатам, нужно в десктопной версии Google Maps или мобильном приложении ввести данные в одной из рассмотренных выше форм, и нажать на значок поиска. В результате этого на карте отобразится то место, которое вы ищите.
Особенности поиска по картам на ПК
Чтобы найти, с помощью онлайн-сервиса от компании Google, нужное место на карте:
Особенности поиска на мобильных устройствах
Для поиска места по его координатам на смартфоне необходимо установить приложение Google Maps, которое можно загрузить из магазина приложений Google Play или App Store, в зависимости от используемого мобильного устройства. После этого необходимо сделать следующее:
После этого нужное место можно будет изучить, передать его кому-нибудь, проложить маршрут к найденному расположению или сохранить его для дальнейшего использования.
Поиск широты и долготы на Яндекс.Картах
В сервисе Яндекс.Карты рекомендуется вводить значение градусов виде десятичной дроби, при этом вместо запятой используется точка. После точки допускается не более 7 чисел. По умолчанию используется северная широта и восточная долгота, для уточнения запроса можно использовать следующие буквы:
Например, 48.805361SN, 2.120389E. Буквы можно писать не в конце координат, а в начале, например, N48.805361, E2.120389. Кроме рекомендованного Яндексом способа ввода географических координат, можно воспользоваться любым из тех, которые использует компания Google для собственного картографического сервиса.
Чтобы найти место с помощью онлайн-сервиса Яндекс.Карты нужно сделать следующее:
Найти место, зная его координаты, достаточно просто как с помощью сервиса от Google, так и с помощью картографической платформы Яндекса. Два этих сервиса примерно равны по своим возможностям, но считается, что Яндекс.Карты больше подходят для российских пользователей, а с помощью платформы Google Maps удобнее смотреть места, расположенные за рубежом.
Поиск на карте
На Яндекс.Картах вы можете найти:
по его наименованию:
в результатах поиска по запросу [Москва], вы увидите город, реку и гостиницу «Москва» ;
по сочетанию топонима с типом объекта:
в результатах поиска по запросу [река Москва] вы увидите именно реку Москву;
по его географическим координатам:
в результатах поиска по запросу [79°30′ с. ш. 76°54′ в.д.] вы увидите остров Визе в Карском море.
Маршрут общественного транспорта ─ по его номеру и типу (например, «Автобус 39» ). Вы увидите линию маршрута и значки транспортных средств, перемещающиеся по карте в режиме реального времени (подробнее см. раздел Общественный транспорт).
При вводе запроса вы увидите поисковые подсказки, с помощью которых можно ускорить введение запроса.
Чтобы получить информацию об одном из нескольких объектов, наведите курсор на метку — строчка объекта в списке выделится желтой рамкой. И наоборот, чтобы выделить метку объекта, наведите курсор на нужную строчку в списке.
При просмотре карточки список объектов не исчезает; чтобы вернуться к нему, нажмите стрелку «назад» в поисковой строке.
Чтобы закрыть карточку объекта нажмите кнопку (в правом верхнем углу карточки).
Если вы ищете объект по географическим координатам, убедитесь, что вы вводите запрос правильно:
Количество знаков после запятой — не более семи.
Если вы хотите указать другие значения, вы можете использовать следующие варианты запроса (N или С — север, S или Ю — юг, E или В — восток, W или З — запад):
S55.777044,W37.555554 или 55.777044S,37.555554W.
Поиск на карте
На Яндекс.Картах вы можете найти:
по его наименованию:
в результатах поиска по запросу [Москва], вы увидите город, реку и гостиницу «Москва» ;
по сочетанию топонима с типом объекта:
в результатах поиска по запросу [река Москва] вы увидите именно реку Москву;
по его географическим координатам:
в результатах поиска по запросу [79°30′ с. ш. 76°54′ в.д.] вы увидите остров Визе в Карском море.
Маршрут общественного транспорта ─ по его номеру и типу (например, «Автобус 39» ). Вы увидите линию маршрута и значки транспортных средств, перемещающиеся по карте в режиме реального времени (подробнее см. раздел Общественный транспорт).
При вводе запроса вы увидите поисковые подсказки, с помощью которых можно ускорить введение запроса.
Чтобы получить информацию об одном из нескольких объектов, наведите курсор на метку — строчка объекта в списке выделится желтой рамкой. И наоборот, чтобы выделить метку объекта, наведите курсор на нужную строчку в списке.
При просмотре карточки список объектов не исчезает; чтобы вернуться к нему, нажмите стрелку «назад» в поисковой строке.
Чтобы закрыть карточку объекта нажмите кнопку (в правом верхнем углу карточки).
Если вы ищете объект по географическим координатам, убедитесь, что вы вводите запрос правильно:
Количество знаков после запятой — не более семи.
Если вы хотите указать другие значения, вы можете использовать следующие варианты запроса (N или С — север, S или Ю — юг, E или В — восток, W или З — запад):
S55.777044,W37.555554 или 55.777044S,37.555554W.
Как наладить поиск адреса по координатам (и где взять нужный справочник)
Весной мы добавили в 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, Московская обл, Ленинский р-н, с Булатниково, ул Центральная, д 103 | a8b6a52f-e96d-4ec3-a0ff-641013ab0445 | 55.558773 | 37.667103 |
119034, г Москва, пер Турчанинов, д 6 стр 2 | 8c925e61-9173-48b3-999e-dc85c86d89e7 | 55.737096 | 37.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.
Как указать другим свое местоположение, если не знаешь адреса (поиск по координатам). Как найти нужный адрес в незнакомом городе
Доброго времени суток!
Практически каждый из нас оказывался в ситуации, когда блуждаешь в малознакомой части города и пытаешься отыскать нужный адрес. Сейчас, конечно, технологии шагнули вперед и обычный смартфон позволяет здорово ориентироваться на местности. 👀
Тем не менее, далеко не везде и не всё нарисовано на картах Гугл и Яндекс. Не так давно я был в новой части своего города, и, как оказалось, некоторые улицы этой местности просто не показаны на карте. Как можно передать другому человеку, где находишься и как тебя найти? 👣
Собственно, эта небольшая заметка посвящена координатам и поиску конкретной точки на карте с помощью сервисов карт от Яндекс и Гугл.
Как определить свои координаты и как найти адрес по координатам
👉 Начну с Google-карт, официальный сайт: https://www.google.ru/maps/
Перейдя по ссылке выше, Гугл сразу же должен определить ваше примерное местоположение и открыть карту местности (например, ваш район города, где вы находитесь).
определить текущее местоположение
Кстати, в некоторых случаях разные сервисы могут показать вас в «разных местах». Поэтому, перепроверяйте свои координаты сразу по 2-ум картам.
Далее на экране должна появиться синяя точка. Хорошо, если она появиться на какой-нибудь улице с номером дома — можно будет хотя бы сориентироваться, и как-то объяснить собеседнику, где находитесь. 👌
Если же улица длинная, и нет номеров домов (либо, в картах Гугл вообще не обозначены дома на этой территории) — то щелкните левой кнопкой мышки по точке рядом с той, которую определил Гугл — внизу должна всплыть небольшая вкладка, в которой будут указаны ваши координаты! 👇
Координаты представляют из себя два числа. Например, на скрине ниже — это: 54.989192 и 73.319559.
Зная эти числа, можно передать свое местоположение кому угодно (даже если он будет пользоваться не картами Гугл, что есть очень удобно).
Получены координаты нужной точки (место рядом с нами)
Чтобы найти по координатам нужную точку в Гугл, просто откройте карты и в поисковую строку (слева сверху) введите эти два числа: через 1-2 сек. на картах загорится красный флажок, указывающий нужную точку.
Ищем точку по координатам
👉 Яндекс-карты
По большому счету, с Яндекс-картами принцип работы аналогичен. ☝
Стоит отметить, что если у одного сервиса адрес не определяется, попробуйте использовать другой. Иногда, если в Гугл картах улица или район не прорисован, то в Яндекс — наоборот, он достаточно полно отображается, все улицы подписаны, и можно легко сориентироваться, куда идти и что делать. 😉
В Яндекс-картах также есть спец. инструмент, позволяющий в режиме онлайн узнать ваше месторасположение (справа нажмите на стрелочку в белом круге, см. скрин ниже 👇).
Для определения координат: просто щелкните по нужно точки на карте — всплывет небольшое окно с адресов и двумя цифрами — это они и есть.
Яндекс определил координаты точки
В поисковую строку можно вставлять как конкретный адрес, так и координаты (не забывайте, что их нужно правильно задавать: не перепутать последовательность, указывать через точку, а не запятую!).
По координатам был найден адрес
У меня на блоге есть еще одна статья похожего толка — про определение расстояний между городами, выбор оптимальной дороги и оценки времени в пути. Пригодится всем, кто собирается съездить в другой город, рекомендую: https://ocomp.info/rasstoyanie-mezhdu-gorodami.html
Дополнения по теме приветствуются.
Как найти объект по координатам на Google Maps
Как найти какой-либо объект на карте местности? Конечно, по адресу. А что делать, если у объекта нет адреса или он неизвестен? Искать по координатам. Однако координаты для неискушенного человека — просто непонятный набор цифр. Долго бы им еще оставаться таинственной записью «для посвященных», если бы ни помощь сервиса Google Карты.
Какие форматы записи координат понимают Карты Google
Навигационный сервис Google Maps умеет работать с тремя форматами записи координат:
При вводе координат десятичные значения принято отделять точкой, а широту, которая всегда стоит первой, и идущую за ней долготу — запятой.
Как использовать сервис в браузерах на ПК
Рассмотрим пример. Допустим, у нас есть следующие данные:
Чтобы найти нужное место:
Особенности поиска на мобильных устройствах
На смартфонах и планшетах на базе Android и iOS поиск мест по координатам производят точно так же, только вместо браузера используют мобильное приложение Google Maps. Широту и долготу вводят в поисковую строку, которая показана стрелкой на скриншоте ниже. После этого найденное место отмечается на карте красным маркером.
Как узнать координаты места по визуальному расположению
Если вам неизвестны координаты, но известно визуальное расположение искомой локации, определить ее широту и долготу с помощью Гугл Мапс тоже очень просто:
На Андроид-устройствах меню открывается долгим касанием интересующего объекта. На iOS дополнительно придется нажать на надпись «Без названия».
Координаты некоторых знаменитых мест на Картах Google
Освоили сервис? Теперь предлагаем потренироваться. Ниже приведены широта и долгота нескольких достопримечательностей в разных точках мира, попробуйте их найти:
А если вы знаете другие интересные места, которые также можно найти на Google Картах, делитесь своими находками в комментариях!