Весной мы добавили в API DaData.ru фичу «Обратное геокодирование», она же «Адрес по координатам». Название намекает: метод принимает геокоординаты и отдает данные об адресе.
Солидный продукт с той же функциональностью предлагает «Яндекс» — он называется «Геокодер». Но сервис «Яндекса» бесплатен только для открытых некоммерческих проектов. Стандартный же тариф — от 120 000 ? в год — подходит не всем.
Мы подумали — если сделать бесплатную или недорогую альтернативу «Геокодеру», разработчики наверняка скажут спасибо. И сделали. В статье расскажу, как устроен «Адрес по координатам»: как мы наладили поиск, собрали справочник и упаковали в готовый метод. Подступаясь к задаче, мы изучили готовые решения: где взять справочник координат с адресами и как потом искать по этому справочнику географические объекты. Оказалось, за нужными инструментами даже не придется далеко ходить.
Адресные объекты берем в ФИАС — Федеральной информационной адресной системе. Это самый полный из открытых и официальных адресных справочников. Подробно о нем мы уже писали на «Хабре», а сейчас важны четыре факта:
- в ФИАС хранятся все адресные объекты страны, от регионов и ниже — до зданий и дополнительных территорий;
- справочник свободно доступен в форматах DBF и XML;
- ФИАС не идеален — в нем отсутствуют десятки тысяч домов и множество улиц, особенно новых;
- каждому адресному объекту в справочнике соответствует уникальный ID — ФИАС-код. Код объекта иногда меняют, но для нашей статьи это не так важно.
Адресные объекты, загруженные из ФИАС вместе с ID, — основа нашего справочника для обратного геокодирования.
Координаты загружаем из 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, проблема с поиском решилась почти сама. Делов осталось — пройтись наждачкой.
- Загрузили в Lucene свой справочник координат и адресов, получили поисковый индекс. Для легкости убрали из него почти все, оставив лишь ID адресов и координаты.
- Наладили поиск по индексу: на вход — координаты, на выход — ID найденных адресных объектов. Другой информации поиск не возвращает, поскольку индекс мы донельзя скукожили.
- Насытили выдачу, загружая из «большого» ФИАС данные по найденным ID. Добавляем много всего, от нужного всем адреса одной строкой до признака столицы региона у городов.
- Придумали, как сортировать и отдавать полученные объекты.
Пока все выглядит просто, но это лишь малая часть работы. Никакого поиска адреса по координатам не получилось бы, не собери мы приличный справочник. Для начала выложу багаж: прочитав статью, быстро сделать подобный справочник не получится. Мы собираем его с 2014 года, постоянно дополняя. Об этом чертовски длинном пути я и расскажу. Самое сложное при составлении справочника — перебрать кординаты, которые пришли из OSM. На старте мы выверяли их как могли, в том числе руками. Главная цель тогда — получить опорные точки в крупных городах и сделать из них эталонный справочник. Теперь, когда таких точек много, проверять новые данные вручную почти не приходится. За раз мы добавляем в эталонный справочник 200 000–300 000 адресов с координатами, и вот как это делаем.
Формируем из OSM-тегов полные адреса?. В OSM-выгрузках составные части адресов разбросаны по разным тегам:
- addr:city — д. Булатниково;
- addr:street — Центральная улица;
- addr:housenumber — 103.
Пробегаем по тегам и собираем из них полный адрес: д. Булатниково, Центральная улица, 103.
Прогоняем каждый новый адрес через API стандартизации «Дадаты». Сервис приводит адреса к единому формату «Как в ФИАС»:
- исправляет опечатки;
- расшифровывает сокращения вроде «НиНо» и «Мск»;
- меняет старые названия на новые;
- находит по индексу пропущенный в адресе город;
- определяет ФИАС-код.
Адреса? приходят от API чистыми, хоть сейчас шли письмо или бандероль.Стандартизованные дома, улицы и населенные пункты мы храним как одну точку. Для улицы и населенного пункта эта точка — центр. В итоге все адресные объекты лежат в одной таблице, внутри — адрес, ФИАС ID, широта и долгота. Разбираем адреса, которые «Дадата» не стандартизовала. Адреса?, которые не получилось сопоставить с ФИАС, сервис помечает флажком. Их проверяем вручную, вариантов здесь несколько.
- Адрес пришел не в положенных тегах выгрузки OSM, а черт знает где. Встречали и вовсе не заполненные адресные теги, и город в теге улицы, и еще много всего.
- В OSM лежит экзотический объект вроде детской площадки, вузовского футбольного поля или вовсе кладбища. В ФИАС ничего такого нет, да и для наших целей эти результаты не годятся. Такие объекты просто отсеиваем.
- Ошибка — и не ошибка вовсе. Например, из OSM пришел район города, которого в ФИАС нет. Или в ОSМ объект находится в населенном пункте, а в ФИАС этот населенный пункт присоединили к городу и удалили. Тогда мы допиливаем алгоритм под загруженные данные и запускаем снова.
Распарсили выгрузку, а там — путаница в тегах
Проверяем, насколько адекватны загруженные координаты. Для этого специальной утилитой смотрим, попадают ли координаты нового объекта в полигон родительского региона или района. Если адрес сообщает, что объект находится в Омской области, будь добр по координатам попадать в ее полигон. Вхождения в город не требуем — не все города точно освещены в OSM, для многих данные не обновляют.
Эталонные полигоны мы загружаем из OSM и храним как есть — в формате GeoJSON. Чтобы выбрать, к какому полигону примерить точку, смотрим в отдельную таблицу. В ней мы сопоставили префиксы КЛАДР-кодов и ID полигонов: находишь для адреса КЛАДР-код и видишь, какой полигон выбрать.
КЛАДР-код — это уникальный идентификатор, который использовали еще до появления ФИАС. Находить этот код для адреса умеет миллион сервисов Утилита разрешает объекту отстоять от положенного полигона на 1 700 метров. Это правило добавили из-за шоссе, которые часто выходят за границы региона. Но расстояние больше 1 700 метров — признак ошибки, так говорит статистика. На этом для городов и улиц проверка заканчивается.
Еще раз, построже, проверяем загруженные координаты домов. В дело снова вступает упомянутая утилита, и вот что она делает.
- Берет адрес нового дома и находит для него соседей в эталонном справочнике.
- По координатам считает расстояние между непроверенным новым домом и надежными соседними.
Соседей найти несложно: 1. Берем новый дом и находим ФИАС ID родителя. 2. Выбираем из эталонного справочника дома?, у родителей которых тот же ФИАС ID Проверку проходят только дома, которые удалены от надежных коллег не более чем на 150 метров. Причем каждый новый одобренный дом мы учитываем при разборе следующих. Вот как это работает.
Допустим, в эталонном справочнике хранятся дома № 1, 2 и 3 по улице Коммунаров. В новых данных пришли дома № 5, 6 и 7 по той же улице. Судя по координатам, новые дома стоят рядом. Утилита видит, что дом № 5 находится рядом с домами № 1, 2 и 3 и добавляет его в эталонный справочник. Значит, дома № 6 и 7 тоже проходят проверку.
А дальше решается судьба пришедших из OSM данных:
- дома, прошедшие обе проверки: на полигоны и на соседей, добавляем в эталонный справочник;
- если объект не попадает в полигон, новые данные не подходят. То же самое, если расстояние между домом и соседями слишком велико;
- дома, у которых нет соседей, мы пока откладываем. Они лежат в отдельной базе, когда-нибудь разберем.
Делим прошедшие проверку объекты на две части. Они пойдут в разные таблички нашего эталонного справочника.
В первой таблице — все объекты c ФИАС ID до домов: регионы, населенные пункты, улицы. Во второй — дома? и ссылка на родителя из первой таблицы Две таблицы нужны, чтобы назначить ключи отсутствующим в ФИАС домам. У них нет собственного ФИАС-кода, поэтому делаем вот как:
- в одну таблицу собираем адресные объекты до дома, у каждого из них свой ФИАС-код;
- во вторую — только дома?, при этом ссылаясь на родителя в первой таблице.
В итоге здания без ФИАС-кода мы идентифицируем по ключу ФИАС ID родителя + номер дома.
Справочник готов, осталось протестировать. За ночь прогоняем сервис по функциональным тестам и тестируем производительность. Скорость проверяем на Москве, запрашивая все дома в радиусе трех километров. Чтобы уж наверняка. Конечно, обложили все автотестами.
Главное после обновления — чтобы не стало хуже. На вход метод принимает три параметра: координаты, количество результатов и радиус поиска. Радиус по умолчанию — 100 метров, максимальный — километр. Точное значение задают в настройках. curl -X POST
-H Content-Type: application/json
-H Accept: application/json
-H Authorization: Token ${API_KEY}
-d '{ lat: 55.878, lon: 37.653, radius_meters: 50 }'
https://suggestions.dadata.ru/suggestions/api/4_1/rs/geolocate/address Обратно метод возвращает найденные объекты: дома, улицы и населенные пункты. При этом сортирует их по убыванию точности.
- Дома?.
- Улицы.
- Населенные пункты.
- Города?.
Затем сортирует еще раз — по расстоянию от заданных координат. Если метод нашел четыре дома и улицу, сначала встанут дома? в порядке удаленности от заданной точки. За ними — улица. После всех этих рокировок метод наконец-то возвращает объекты, которые нашел. {
suggestions: [
{
value: г Москва, ул Сухонская, д 11,
unrestricted_value: г Москва, ул Сухонская, д 11,
data: {#8230;}
},
{
value: г Москва, ул Сухонская, д 11А,
unrestricted_value: г Москва, ул Сухонская, д 11А,
data: {#8230;}
}
]
} Внутри — много разного о найденных объектах: строки с полным и сокращенным адресом, актуальное и устаревшие названия, почтовый индекс, ФИАС-код родительского объекта и так далее.
Все данные, которые отдает метод — в документации Покрытие по координатам для разных регионов разное, вот так с домами:
- Москва — 96%,
- Санкт-Петербург — 88%,
- другие города-миллионники — 74%,
- остальная Россия — 47%.
А вот это — покрытие по улицам:
- Москва — 92%,
- Санкт-Петербург — 79%,
- другие города-миллионники — 75%,
- остальная Россия — 67%.
По городам не считали — в масштабах России зыбок даже сам факт принадлежности к гордому званию города. Например, Ярославская обл, Пошехонский р-н, с/о Федорковский — это город, согласно официальному справочнику ФИАС. А по факту, да и по адресу — сельский округ. Физически сельский округ напоминает объединение нескольких деревень в большую кляксу. Сложно не только определить центр, но даже найти населенный пункт на карте. Уже думаем, что добавить к методу: разрешить фильтрацию по типам объектов, возвращать расстояния до заданной точки, еще что-нибудь. Следим за спросом и решаем, вкладывать ли силы.
А в остальном все уже на проде. До 10 000 запросов в сутки — бесплатно, больше — по подписке от 5 000 ? в год. Если нужны адреса по координатам для коммерческого проекта, а «Геокодер» слишком дорог — попробуйте API «Дадаты».
Оригинал статьи опубликован в блоге HFLabs.
Вычисление и поиск по координатам на Яндекс.Картах
Вариант 1: Веб-сайт
На веб-сайте Яндекс.Карт можно использовать координаты как с целью вычисления точного местоположения какого-либо объекта без видимой метки, так и для быстрого поиска мест. Стоит учитывать, что наибольшее количество инструментов доступно именно в полной онлайн-версии сервиса, тогда как приложение является лишь альтернативой.
Перейти к Яндекс.Картам
Вычисление координат
- Самый простой способ узнать координаты фиксированного объекта на карте заключается в использовании внутренней системы поиска. К примеру, введите название города в отмеченное текстовое поле, нажмите «Enter» на клавиатуре и внимательно ознакомьтесь с карточкой в правой части страницы.
Именно здесь под названием будут указаны данные. Стоит учитывать, что в случае с крупными областями координаты указывают на центр, а не на какое-либо конкретное место.
- Если вас интересуют координаты конкретного объекта или организации, щелкните ЛКМ по названию и убедитесь, что в правой части страницы появилось подробное описание. Сами данные о местоположении станут доступны после нажатия по блоку с указанием точного адреса.
- На веб-сайте рассматриваемого сервиса можно вычислить координаты и любых не отмеченных мест при помощи контекстного меню. Для этого найдите нужную точку любым удобным способом, кликните правой кнопкой мыши и воспользуйтесь опцией «Что здесь».
В результате опять же появится карточка с кратким описанием района и всех связанных особенностей, предоставляя также информацию о координатах. Чтобы скопировать данные, попросту кликните левой кнопкой мыши по отмеченной строке.
Можно также попросту щелкнуть левой кнопкой мыши по любой области на карте и нажать по названию объекта во всплывающей подсказке. Это приведет к открытию информационной карточки.
- Кроме прочего, когда на карте выбрано какое-то место, для получения нужной информации может быть использована адресная строка. В таком случае координаты расположены между символами «?ll=» и «#038;mode», а также разделены с помощью «%2».
Мы постарались рассмотреть все основные способы вычисления координат, однако наверняка можно найти и другие. К примеру, для этого вполне подойдет редактор пользовательских карт.
Поиск по координатам
Полученные тем или иным образом координаты можно использовать для наиболее эффективного поиска объектов, вставив данные, разделенные запятой, в текстовое поле «Поиск мест и адресов». Также можете прибегнуть к использованию адресной строки браузера.
Подробнее: Поиск по координатам на Яндекс.Картах
Вариант 2: Мобильное приложение
Официальный мобильный клиент Яндекс.Карт, доступный на Android и iOS-устройствах, позволяет также без проблем вычислять и производить поиск по координатам. Более того, сами по себе способы практически не отличаются от описанного ранее на примере полной версии сайта.
2.2.1. Найти объект — Народная Карта Яндекса. Справка
На жаль, цей документ ще не перекладено на Українська мову. На цій сторінці наведено мову документа за замовчуванням — Російська мова.
Чтобы найти на карте объект по названию, следует:
-
В строку поиска ввести запрос — название искомого объекта.
-
Под строкой поиска открывается список объектов, названия которых соответствуют запросу. Объекты располагаются в порядке удалённости от центра текущей карты:
В списке следует выбрать нужную запись. Карта автоматически центрируется на выбранном объекте (объект подсвечивается), масштаб увеличивается, открывается карточка объекта:
Чтобы найти на карте точку по её географическим координатам, введите их в строку поиска:
- Координаты задаются в градусах с десятичной дробной частью после точки, например 55.777044. Количество знаков после запятой — не более семи (такая точность обеспечивает позиционирование с точностью до 1 см).
- Значения координат разделяются запятой или пробелом. Например:
Координаты можно задавать в любой последовательности — «широта, долгота» или «долгота, широта». При любой записи будут показаны два варианта ответа на запрос («ш-д» и «д-ш»). По умолчанию предлагаются варианты, соответствующие значениям «северная широта, восточная долгота».
Чтобы изменить выбор полушария, перед любым (из двух) значением координат следует поставить знак «минус» (дефис).
Чтобы изменить оба полушария, перед обоими значениями координат следует поставить знаки «минус» (дефис).
Примечание.
Координаты точки отображаются на Народной карте.
- Любой объект Народной карты имеет уникальный числовой идентификатор (id), который можно использовать для поиска объекта на карте и для передачи информации о нём.
- Чтобы узнать идентификатор (id) объекта, выделите объект на карте.
- При этом в URL объекта вы увидите фрагмент «/object/NNNNN?z=», где «NNNNN» — идентификатор выделенного объекта (на рисунке это число 1489095561):
Идентификатор объекта можно использовать для сохранения или пересылки сведений о нём: если задать значение идентификатора в строке поиска, то оно будет распознано именно как идентификатор (id) объекта. Объект (и вся связанная с ним информация) будут найдены на карте:
Некорректный поисковый запрос автоматически редактируется в соответствии с имеющимися данными либо отображается сообщение «объект не найден».
При вводе запроса, содержащего несуществующий адрес, сервис показывает ближайший корректный адрес. Например, вместо несуществующего адреса :
Была ли статья полезна?
Попередня
2.2. Управление картой
Наступна
2.2.2. Переместить карту
Двусторонний спутниковый Интернет
Что такое географические координаты?
Географические координаты определяют положение точки на земной поверхности. Географические координаты строятся по принципу сферических и состоят из широты и долготы.
Широта — угол между местным направлением зенита и плоскостью экватора, отсчитываемый от 0° до 90° в обе стороны от экватора.
Географическую широту точек, лежащих в северном полушарии, (северную широту) принято считать положительной, широту точек в южном полушарии — отрицательной.
О широтах, близких к полюсам, принято говорить как о высоких, а о близких к экватору — как о низких.
Долгота — угол между плоскостью меридиана, проходящего через данную точку, и плоскостью начального нулевого меридиана, от которого ведётся отсчёт долготы. Долготы от 0° до 180° к востоку от нулевого меридиана называют восточными, к западу — западными. Восточные долготы принято считать положительными, западные — отрицательными.
Формат записи географических координат
Географические координаты одной точки могут быть выражены в разных форматах. В зависимости от того, представлены минуты и секунды как значения от 0 до 60 или от 0 до 100 (десятичные доли).
Формат координат обычно записывают следующим образом: DD — градусы, MM — минуты, SS — секунды, если минуты и секунды представлены как десятичные доли, то пишут просто DD.DDDD. Например:
- DD MM SS: 50° 40' 45'' в.д., 40 50' 30'' с.ш. — градусы, минуты, секунды
- DD MM.MM: 50° 40.75' в.д., 40 50.5' с.ш. — градусы, десятичные минуты
- DD.DDDDD: 50.67916 в.д., 40.841666 с.ш. — десятичные градусы
Для чего нужно знать координаты своего дома
Для проработки технической возможности подключения Интернета в загородном доме мы также просим своих заказчиков предоставить координаты дома, особенно в том случае если ни на одном из картографических онлайн-сервисов он не находится по адресу.
Определение координат с помощью картографических онлайн-сервисов
Как определить координаты своего местонахождения сейчас
Современный мир невозможно представить без карт. Первые карты, более или менее похожие на наши и привычные глазу появились еще в Древней Греции. То есть можно смело предположить, что уже с давних времен ученые задавались вопросами: «как определить мое местоположение или добраться до заданной точки», делали первые пробы проложить маршрут.
Система координат появилась благодаря трудам Эратосфена – Древнегреческого ученого. С тех пор информация постоянно дорабатывалась и улучшалась, человек учился сложной навигации.
Однако уже в XX веке в 1957 году, после запуска в Советском Союзе первого искусственного спутника, начали развиваться идеи цифрового навигатора, который бы отслеживал передвижение сам, без необходимости следить за картой или прокручивать ее (как это было в механическом навигаторе).
Однако идея была реализована только в 1974 году американцами, и затем эта сфера начала свое активное развитие и сегодня готова предложить пользователям разные и полезные дополнительные функции.
Форматы координат
При работе с географическими картами для определения точного положения необходимо уметь читать координаты. Для этого используют разные форматы записи.
Градусы, минуты, секунды
Это исторически сложившаяся система. Именно по ней получится найти любое заданное место на карте. Для записи используют условные обозначения, где градус обозначается знаком «°» (например, 55°), минуты – «’», а для секунд используется символ «?».
После точной записи координат необходимо указать широту (северную или южную), которая определяет направление относительно экватора, и долготу (западную или восточную) в зависимости от стороны света.
Градусы, минуты, доли минут
Такой формат преимущественно используется среди моряков. Такая особенность записи координат связана со строением шкалы секстанта, а доли минут представляют в виде морской мили.
Записывается похожим образом: 55°38.211’С 37°28.825’В, а читается как 55 градусов, 38 минут 211-тысячных минут северной широты; 37 градусов 28 минут 825-тысячных минут восточной долготы.
Градусы, доли градусов
Этот формат вошел в обращение с началом массовой компьютеризации. Главной причиной стало то, что искать дополнительные обозначения на клавиатуре довольно сложно, формат считается более удобным для записи под диктовку.
Представляет собой формулу 55.639134°С 37.480168°В. Читается дословно: 55 точка 639134 северной широты; 37 точка 480168 восточной долготы. В обозначении принято указывать 5 или 6 знаков после запятой – они влияют на точность (в пределах 80 см и 8 см соответственно).
Впрочем, человеку вполне хватает и 4 цифр. В современном цифровом мире часто отказываются от указания частей света и знаков градуса, то есть выражение приобрело исключительно цифровое обозначение.
Для обозначения используются символы: северное полушарие и восточная долгота условно принимаются как положительные значения, а южное полушарие и западная долгота – отрицательные со знаком «-».
Определение широты и долготы на карте
Каждая точка планеты имеет свои координаты и состоит из двух числовых выражений, определяющих широту и долготу.
Для определения широты точки необходимо провести воображаемую линию к центру Земли, а затем рассчитать угол, образованный между воображаемым отрезком и экваториальной плоскостью. На деле все намного проще и при работе с картами или глобусом все эти значения рассчитаны и отмечены.
Значение долготы изменяется в пределах 90 градусов, где Северный и Южный полюс имеют максимальное значение. К слову, для обозначения этих точек достаточно указания только широты, в то время как для других объектов придется использовать второе значение – долготу.
Для расчета долготы необходимо пользоваться меридианами, то есть вертикальными линиями. Для этого от выбранной воображаемой точки проводим отрезок до центра Земли и отсчитываем значение от нулевого меридиана.
Все значения также уже указаны на картах и глобусах, в том числе и плоскость нулевого меридиана, на котором расположена Гринвичская обсерватория в Великобритании. Значение долготы меняется в пределах 180 градусов и делится на восток и запад.
Как по координатам найти место на карте
Информация по поиску заданной точки на карте с помощью системы координат может потребоваться путешественнику в любой момент. Для этого потребуется только географическая карта местности или а?тлас мира, точные координаты.
Для поиска в первую очередь определяют широту и долготу, и воображаемые линии должны пересечься. Высчитывать углы самостоятельно также не придется, ведь современная картография все сделала уже за пользователя.
Поиск нахождения места по координатам на бумажном носителе – давно устаревший метод. Современный гаджет выполнит сложную работу за человека, если ввести в свободные поля значения. Он выдаст готовое точное положение на карте, а хозяину нужно только проложить маршрут до указанной точки.
Лучшие сервисы для поиска места по координатам
Цифровая техника постоянно совершенствуется, дополняется новыми полезными утилитами, которые бесперебойно работают для достижения человеком комфорта.
Итак, чтобы найти свое местоположение по широте и долготе потребуется одна из программ.
DaData.ru — максимум информации по клиентам и контрагентам
? Все API
- Как вызвать
- Что в ответе
- Покрытие
- Примеры
- Ограничения
- Стоимость
Определяет координаты адреса (дома, улицы, города). Только для России.
Как вызвать
Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.
Пример запроса:
cURL curl -X POST
-H Content-Type: application/json
-H Authorization: Token ${API_KEY}
-H X-Secret: ${SECRET_KEY}
-d '[ москва сухонская 11 ]'
https://cleaner.dadata.ru/api/v1/clean/address .NET // https://github.com/hflabs/dadata-csharp
var token = ${API_KEY};
var secret = ${SECRET_KEY};
var api = new CleanClientAsync(token, secret);
var result = await api.Clean(москва сухонская 11); Go // https://github.com/ekomobile/dadata
token := ${API_KEY}
secret := ${SECRET_KEY}
dadata := dadata.NewDaData(token, secret)
result, err := dadata.CleanAddresses(москва сухонская 11) Node.js var url = https://cleaner.dadata.ru/api/v1/clean/address;
var token = ${API_KEY};
var secret = ${SECRET_KEY};
var query = москва сухонская 11;
var options = {
method: POST,
mode: cors,
headers: {
Content-Type: application/json,
Authorization: Token + token,
X-Secret: secret
},
body: JSON.stringify([query])
}
fetch(url, options)
.then(response = response.text())
.then(result = console.log(result))
.catch(error = console.log(error, error)); PHP // https://github.com/hflabs/dadata-php
$token = ${API_KEY};
$secret = ${SECRET_KEY};
$dadata = new DadataDadataClient($token, $secret);
$result = $dadata-clean(address, москва сухонская 11); Python # https://github.com/hflabs/dadata-py
from dadata import Dadata
token = ${API_KEY}
secret = ${SECRET_KEY}
dadata = Dadata(token, secret)
result = dadata.clean(address, москва сухонская 11)
Укажите при вызове:
- Content-Type: application/json.
- ${API_KEY} — API-ключ.
- ${SECRET_KEY} — секретный ключ.
Тело запроса передавайте в кодировке UTF-8.
Что в ответе
Адрес с координатами:
[
{
source: москва сухонская 11,
result: г Москва, ул Сухонская, д 11,
postal_code: 127642,
country: Россия,
region: Москва,
city_area: Северо-восточный,
city_district: Северное Медведково,
street: Сухонская,
house: 11,
geo_lat: 55.8782557,
geo_lon: 37.65372,
qc_geo: 0
}
]
Координаты возвращаются в полях geo_lat и geo_lon. Поле qc_geo показывает, насколько точно удалось определить координаты:
Точные координаты дома | |
1 | Ближайший дом |
2 | Улица |
3 | Населенный пункт |
4 | Город |
5 | Координаты не определены |
Метод возвращает больше полей, чем показано в примере. Описание всех полей см. в API Стандартизации.
Покрытие координат
«Дадата» берет координаты домов и улиц из OpenStreetMap.
Покрытие по домам:
- Москва — 97%,
- Санкт-Петербург — 91%,
- другие города-миллионники — 69%,
- остальная Россия — 47%.
По улицам:
- Москва — 95%,
- Санкт-Петербург — 94%,
- другие города-миллионники — 81%,
- остальная Россия — 70%.
Примеры и интеграции
Ограничения
Максимальная частота запросов — 10 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Дадата не поддерживает вызов этого метода из браузерного JavaScript. Иначе злоумышленник мог бы похитить секретный ключ и использовать API за ваш счет.
Стоимость
10 копеек за запись
Определение координат на карте — Россия
Онлайн сервис определения координат на карте России. Удобный поиск GPS координат (широта, долгота) по адресу в России, определение местоположения по координатам на карте Google Maps города, улицы, дома, объекта + калькулятор — рассчитать расстояние между двумя точками по градусам
- страна — Россия
- континент — Европа
- столица — г. Москва
Ввести в окно поиска известную информацию (по умолч. Москва): город, улица, номер дома, объект в России. После активации поиска, в режиме онлайн, произойдет определение широты и долготы на местности, по месту нахождения. В целях уточнения данных, необходимо переместить маркер в точку поиска, перейти на спутниковую схему Гугл Мапс (Спутник), изменить масштаб
- валюта — российский рубль
- флаг —
- код — RU
- Россия на английском сокращенно — Russia
Крупные города страны: Москва, Санкт-Петербург, Екатеринбург, Нижний Новгород, Новосибирск, Казань, Челябинск, Омск, Ростов-на-Дону, Самара, Уфа, Пермь, Красноярск, Волгоград, Воронеж
Поиск по известным параметрам. Ввести свои данные в окно поиска, чтобы найти точку на карте по координатам. Пример 55.7543,37.6200 — широта и долгота столицы страны г. Москва
Как найти место по широте и долготе?
Найти на интерактивной карте России (Russia) необходимый регион (город, место, улица, дом, дорога, географический объект). Переместить мышкой маркер. Для уточнения местоположения маркера, используйте масштабирование (+ /-), изменяйте тип схемы (карта с объектами или спутниковая)
координаты г. Москва — 55.7543,37.6200
Онлайн калькулятор — расчет расстояний между двумя точками по координатам
Используя предложенный калькулятор расстояний и географические координаты двух точек (города, дома, улицы…), можно рассчитать расстояние между ними (в км, м, мили, морские мили)
В ходе поиска получаем GPS координаты по адресу местности как десятичные градусы. Иногда необходимо получить информацию в подобном формате — градусы, минуты и секунды
Пример: 48.85837,2.294481 (Эйфелева Башня в Париже)
Используем десятичную часть широты 48.85837 с точкой впереди .85837 x 60 (умножить на 60) получаем в гр° мин’: 48°51.502?
Далее берем десятичную часть минут .502x 60 и находим секунды. Получаем: 48°51’30.1?
48°51.502? — 2°17.669? (гр° мин’)
48°51’30.1? — 2°17’40.1? (гр° мин’ сек)
Аэропорты страны:
Внуково, Домодедово, Шереметьево, Санкт-Петербург, Саратов, Абакан, Владивосток, Воронеж и др.
Координаты на карте Яндекс – как определить? [2020]
(1 оценок) Загрузка#8230;
Навигацией и картами поисковой системы Яндекс пользуется множество жителей СНГ. Сервис позволяет не только отыскать необходимое место, но также проложить к нему маршрут с учетом дорожной обстановки, просмотреть панораму улиц, спутниковые снимки, фото. Узнать точное расположение объекта помогают координаты на карте Яндекс. В статье ниже поговорим о методике определения, вариантах представления и вводе координат.
Базовый метод взаимодействия с сервисом карт предполагает ввод данных в формате «широта, долгота». Они вводятся в градусах с десятичной дробной частью, а между сторонами света ставится запятая. Например, координаты чешского города Прага отображаются в следующем виде: 50.080293, 14.428983. После точки, разделяющей целую часть и десятичную, допускается ввод не более 7-и цифр.
Также следует знать, что базовый метод представления данных предполагает первоочередное расположение Северной широты, а затем Восточной долготы. Карты от Яндекс распознают и другие варианты написания, необходимо только уточнить свой запрос следующими буквами:
- N или С – данными символами обозначается север;
- S или Ю – юг;
- E или В – восток;
- W или З – запад.
Удобство заключается в том, что система распознает как англоязычное сокращение сторон света, так и русскоязычное. Обозначения можно ставить перед цифрами или после них. Например, упомянутые выше координаты могут быть представлены так: N50.080293, E14.4289835 либо в русскоязычном варианте С50.080293, В14.4289835.
Альтернативно координаты представляются как градусы, затем минуты и секунды широты и долготы. Вот та же точка на карте, только в другом варианте написания: 50°04'49.1#8243;N 14°25'44.3#8243;E.
Использование приложения на телефоне строится по аналогичному принципу, необходимо только привыкнуть к другому расположению элементов интерфейса. Так, после запуска навигатора для ввода координат потребуется лишь нажать на значок лупы в нижней части экрана. Отобразится поисковая строка, куда и вписываются градусы широты и долготы.
В процессе система будет предлагать совпадающие варианты, чтобы ускорить поиск.
После ввода следует нажать кнопку лупы на клавиатуре, приложение отобразит место на карте и предложит построить маршрут, нажатием на кнопку «Поехали».
Если тапнуть по названию места, отобразится дополнительное меню. В нем можно сохранить точку в закладки или поделиться ею через доступные в телефоне каналы связи: СМС, почта, социальные сети, мессенджеры.
Зная, как в навигатор забить координаты, получится отыскать любую местность на карте и проложить к ней маршрут. Чтобы определить точное расположение некоего объекта и предложить его другим пользователями, следует:
- Отыскать точку на карте навигатора. Передвижение выполняется нажатием пальца с последующим его передвижением без отрыва от экрана. Приближение и отдаление реализуется сдвиганием и раздвиганием двух пальцев.
- Приложить палец к месту и удерживать до появления дополнительного меню в верхней части экрана.
- Нажать по блоку «Что здесь?».
- Отобразится название объекта. Далее нужно тапнуть по нему для раскрытия подробностей.
- Теперь станут видны координаты в привычном формате. Их можно скопировать в буфер обмена, нажав соответствующий значок справа. Также система предлагает построить маршрут к отмеченной точке или от нее.
Как видите, поиск по координатам Яндекс реализован очень просто и справиться с задачей может любой пользователь.
Система распознает данные, представленные в любом формате, поэтому не потребуется использовать специальный конвертер.
На картах внедрены дополнительные функции, которые помогают копировать координаты, строить на их основе маршруты и делиться с другими пользователями интернета.