60-я параллель северной широты
Содержание:
- Поиск места по координатам за компьютером
- Каким образом можно найти широту и долготу
- Географические координаты: как определить?
- Что такое долгота в географии
- Как искать место по координатам на картах
- Как определить долготу и широту на топографической карте
- Поиск широты и долготы на Яндекс Картах
- Двусторонний спутниковый Интернет
- Определяем долготу точки
- Правила определения долготы и широты
- Определение координат на виртуальной карте Google
- Откуда берем данные и чем ищем по географическим объектам
Поиск места по координатам за компьютером
Если вам надо увидеть место только на Яндекс картах, Google картах или самым простых стилях OSM, то проще всего открыть сайты соответствующих карт, вставить в строку поиска координаты (или просто название нужного вам места) и нажать «поиск» (лупу) или Enter. Сайт покажет вам, что находится на этом месте.
67.78362/33.38694 — это как раз наши координаты центра экрана в формате «градус, доля градуса»! Просто подставляя в адресную строку нужные цифры, вы передвинетесь к нужному месту. В nakarte.me мы видим 5 знаков после десятичного разделителя (в англоязычных странах принято не запятую, а точки ставить как раздел целой и дробной частей, потому в браузере мы видим точку). Если в имеющихся у вас координатах знаков больше — не волнуйтесь, последний шестой или 7 знак можно не писать, а если и написать, то программа сама отрежет лишнее. Всё равно точность уже 5 знаков — избыточна для простого человека.
m=13 здесь — это масштаб. Чтобы сразу приблизится в плотную к объекту ставьте масштаб +- 16.
=О Это так nakarte.me маркирует тип карты, который вы сейчас смотрите. Трогать не надо, удобней переключать карты штатным меню справа.
Обратите внимание, что похожую структуру ссылки имеют и остальные онлайн карты. С ними можно делать тоже самое при желании
Только весь мир пишет сначала широту, а потом долготу, а у Яндекса странный замут — они их переставили местами. Зачем?! Не понятно, думаю просто тупанули.
Яндекс и Гугл масштаб обозначают после координат буквой «z». От слова «zoom» видимо. У Яндекса размер масштаба идет после z= , а у гугла через запятую после долготы (12z в нашем примере). А на openstreetmap.org масштаб пишут вначале. В нашем примере он равен 12.
Комбинируя возможности «человеческого» поиска в Яндекс и Гугл картах, и знание о координатах в адресной строке браузера можно находить объекты обычным поиском, а потом быстро центрировать карту в nakarte.me на нужный объект.
Каким образом можно найти широту и долготу
При помощи основных определений, которые описаны в предыдущих разделах, вы легко сможете найти долготу и широту на бумажной карте или глобусе. Определите, в какой части земного шара находится точка, которую вы ищите. Найдите сначала широту, затем долготу. Именно такой порядок чаще всего используется при написании координат и их поиске. Практически все географические карты имеют сетку координат с числовыми значениями градусов параллелей широт и долгот. Используйте их, чтобы определить нужное место на карте.
При поиске координат с углубленным рельефом и трёхмерных координат иногда используют высоту. Но она не относится к географическим понятиям. И в записи координат не значится. Тем более, сегодня у каждого есть ноутбуки и мобильные устройства, при помощи которых можно легко найти любую точку на карте, имея её координаты и даже без знаний основных географических понятий.
Географические координаты: как определить?
Ориентироваться по географической карте и находить точное местоположение объектов на земной поверхности позволяет градусная сеть — система параллелей и меридианов. Она служит для определения географических координат точек земной поверхности — их долготы и широты.
Рис. 1. Элементы градусной сети
Географическая широта и долгота
К югу от экватора любая точка будет иметь южную широту, а к северу от экватора — северную. Определить географическую широту любой точки — это значит определить широту параллели, на которой она находится. На картах широту параллелей подписывают на правой и левой рамках.
Рис. 2. Географическая широта
Рис. 3. Географическая долгота
Определить географическую долготу любой точки — это значит определить долготу меридиана, на котором она находится.
На картах долготу меридианов подписывают на верхней и нижней рамках, а на карте полушарий — на экваторе.
Широта и долгота любой точки Земли составляют ее географические координаты. Так, географические координаты г. Москвы 56° с.ш. и 38° в.д.
Географические координаты городов России и стран СНГ
Город | Широта | Долгота |
Абакан | 53.720976 | 91.44242300000001 |
Архангельск | 64.539304 | 40.518735 |
Астана (Казахстан) | 71.430564 | 51.128422 |
Астрахань | 46.347869 | 48.033574 |
Барнаул | 53.356132 | 83.74961999999999 |
Белгород | 50.597467 | 36.588849 |
Бийск | 52.541444 | 85.219686 |
Бишкек (Киргизия) | 42.871027 | 74.59452 |
Благовещенск | 50.290658 | 127.527173 |
Братск | 56.151382 | 101.634152 |
Брянск | 53.2434 | 34.364198 |
Великий Новгород | 58.521475 | 31.275475 |
Владивосток | 43.134019 | 131.928379 |
Владикавказ | 43.024122 | 44.690476 |
Владимир | 56.129042 | 40.40703 |
Волгоград | 48.707103 | 44.516939 |
Вологда | 59.220492 | 39.891568 |
Воронеж | 51.661535 | 39.200287 |
Грозный | 43.317992 | 45.698197 |
Донецк (Украина) | 48.015877 | 37.80285 |
Екатеринбург | 56.838002 | 60.597295 |
Иваново | 57.000348 | 40.973921 |
Ижевск | 56.852775 | 53.211463 |
Иркутск | 52.286387 | 104.28066 |
Казань | 55.795793 | 49.106585 |
Калининград | 55.916229 | 37.854467 |
Калуга | 54.507014 | 36.252277 |
Каменск-Уральский | 56.414897 | 61.918905 |
Кемерово | 55.359594 | 86.08778100000001 |
Киев (Украина) | 50.402395 | 30.532690 |
Киров | 54.079033 | 34.323163 |
Комсомольск-на-Амуре | 50.54986 | 137.007867 |
Королев | 55.916229 | 37.854467 |
Кострома | 57.767683 | 40.926418 |
Краснодар | 45.023877 | 38.970157 |
Красноярск | 56.008691 | 92.870529 |
Курск | 51.730361 | 36.192647 |
Липецк | 52.61022 | 39.594719 |
Магнитогорск | 53.411677 | 58.984415 |
Махачкала | 42.984913 | 47.504646 |
Минск (Беларусь) | 53.906077 | 27.554914 |
Москва | 55.755773 | 37.617761 |
Мурманск | 68.96956299999999 | 33.07454 |
Набережные Челны | 55.743553 | 52.39582 |
Нижний Новгород | 56.323902 | 44.002267 |
Нижний Тагил | 57.910144 | 59.98132 |
Новокузнецк | 53.786502 | 87.155205 |
Новороссийск | 44.723489 | 37.76866 |
Новосибирск | 55.028739 | 82.90692799999999 |
Норильск | 69.349039 | 88.201014 |
Омск | 54.989342 | 73.368212 |
Орел | 52.970306 | 36.063514 |
Оренбург | 51.76806 | 55.097449 |
Пенза | 53.194546 | 45.019529 |
Первоуральск | 56.908099 | 59.942935 |
Пермь | 58.004785 | 56.237654 |
Прокопьевск | 53.895355 | 86.744657 |
Псков | 57.819365 | 28.331786 |
Ростов-на-Дону | 47.227151 | 39.744972 |
Рыбинск | 58.13853 | 38.573586 |
Рязань | 54.619886 | 39.744954 |
Самара | 53.195533 | 50.101801 |
Санкт-Петербург | 59.938806 | 30.314278 |
Саратов | 51.531528 | 46.03582 |
Севастополь | 44.616649 | 33.52536 |
Северодвинск | 64.55818600000001 | 39.82962 |
Северодвинск | 64.558186 | 39.82962 |
Симферополь | 44.952116 | 34.102411 |
Сочи | 43.581509 | 39.722882 |
Ставрополь | 45.044502 | 41.969065 |
Сухум | 43.015679 | 41.025071 |
Тамбов | 52.721246 | 41.452238 |
Ташкент (Узбекистан) | 41.314321 | 69.267295 |
Тверь | 56.859611 | 35.911896 |
Тольятти | 53.511311 | 49.418084 |
Томск | 56.495116 | 84.972128 |
Тула | 54.193033 | 37.617752 |
Тюмень | 57.153033 | 65.534328 |
Улан-Удэ | 51.833507 | 107.584125 |
Ульяновск | 54.317002 | 48.402243 |
Уфа | 54.734768 | 55.957838 |
Хабаровск | 48.472584 | 135.057732 |
Харьков (Украина) | 49.993499 | 36.230376 |
Чебоксары | 56.1439 | 47.248887 |
Челябинск | 55.159774 | 61.402455 |
Шахты | 47.708485 | 40.215958 |
Энгельс | 51.498891 | 46.125121 |
Южно-Сахалинск | 46.959118 | 142.738068 |
Якутск | 62.027833 | 129.704151 |
Ярославль | 57.626569 | 39.893822 |
Что такое долгота в географии
Долгота на географических картах изображена также параллельными линиями. Но в отличие от широты, параллели проходят через земной шар вертикально. Есть среди них и главная линия — Гринвич, нулевая долгота (меридиан). Эта линия проходит через округ в Лондоне, который расположен на правом берегу Темзы. Вертикальные параллели еще называют меридианами. Меридиан бывает только западный или восточный. Долгота бывает соответственно восточная и западная. Записывается долгота так — западная долгота (з.д.).
Максимальная долгота — 180°. Это половина земного шара, т.к. полный круг, как мы знаем, имеет 360°. В международной записи применяются английские буквы: E — восточная долгота и W западная долгота. Чем дальше находится точка долготы от Гринвича, тем больше её градус. Вместе эти два понятия — широта и долгота составляют сетку из параллельных линий, по которым мы и определяем точку на карте. Их пересечение даёт точные координаты, например, 23° ю. ш. и 35° з. д.
Долгота на карте мира
В географии реже, но всё же используются минуты и даже секунды. Это доли градуса, которые имеют аналогию с часовой минутой, которая делит 1 час на 60 минут. Она используется для более детального указания точки на карте. Но из-за того, что необходима при узком круге задач, редко когда бывает необходима. Обычно, достаточно только градусов, чтобы определить населённый пункт на карте или регион.
Географические минуты записываются так: 34° (градуса) 35’ (минут) 23» (секунды) северной широты. Градусы могут записываться как дробные части, например, 43,04°. Это более компактная запись относительно предыдущей. Использование записей не регулируется какими-то правилами. Более того, их вообще не существует касательно записей координат. И это недопустимо, так как каждый может использовать любую запись на своё усмотрение. А это ведёт к путанице и неразберихе. Чаще всего всё же используется запись с дробью, а также с указанием минут и секунд.
Как искать место по координатам на картах
Существует два способа, позволяющих найти по координатам место на картах Google — с помощью веб-версии софта или через мобильное приложение. В обоих случаях принципы похожи, но из-за особенностей управления есть ряд нюансов, о которых необходимо помнить.
Поиск на ПК
Версия Google Maps на компьютере дает больше возможностей, поэтому многие пользователи отдают предпочтение именно этому варианту. Перед тем как искать по координатам в Гугл Картах, выпишите интересующие значения и выполните их конвертацию (при необходимости). Далее сделайте следующие шаги:
- Войдите на стартовую страницу Google.
- Перейдите в секцию Карты путем нажатия на кнопку, скрывающую все сервисы (находится справа вверху).
Найдите поисковую строку. В ней нужно ввести координаты для поиска информации на карте Google.
- Жмите на кнопку Ввод.
- После отображения информации изучите ее, выпишите нужные параметры и другие данные.
По-иному обстоит ситуация, когда нужно узнать данные конкретного места на карте. Для этого сделайте следующее:
- Узнайте координаты любого интересующего места.
- Жмите правой кнопкой мышки.
- Выберите пункт назначения, который вас интересует.
- Кликните на него правой кнопкой мышки.
- Жмите на надпись Что здесь?
В нижней части появляется панель, где отображаются цифры. Таким образом можно быстро осуществить поиск координат любой точки на карте Гугл. Главное не ошибиться с форматом и знать, куда вбивать цифры.
Поиск в приложении на телефоне
С появлением Google Maps на мобильных устройствах многие пользователи используют мобильную программу для поиска информации. Кроме того, с помощью софта можно проложить маршрут, задействовать GPS-навигацию, узнать график движения транспорта и другие сведения.
Алгоритм действий следующий:
- Загрузите Google Maps и запустите программу.
- Кликните на строку поиска. В ней нужно забить координаты в Гугл Карты. Если это необходимо, конвертируйте данные по рассмотренному выше принципу.
Дождитесь появления нужного места. Его можно изучить, передать другим пользователям, проложить маршрут или сохранить.
Если Google карты по какой-то причине не устраивают, к примеру, из-за оформления или доступного функционала, можно использовать другие способы поиска по координатам. Как вариант — применение Яндекс Maps. Но это уже другая история.
Как определить долготу и широту на топографической карте
Если все же вам необходимо в цифровой век воспользоваться настольной картой мира и определить точку на карте, ее широту и долготу, то необходимо знать некоторые условные обозначения и разметки. На всех топографических картах северная часть мира всегда находится сверху. На каждом листе карты, если таковые имеются, западной части в верхнем левом углу, в стороне от значения долготы находится надпись, «К западу от Гринвича». Карты имеющие масштаб 1 к 200 000 рамки поделены на отдельные отрезки, которые соответствуют одной минуте. Определяем широту:
- Одну станину специального измерительного прибора установите на нужную точку карты, вторую установите на ближайшую линию параллели.
- Теперь отнимите измерительный прибор от карты, не сбивая наших координат (не передвигая ног). Перенесите отрезок измерительного прибора на боковую часть, где имеются секундные и минутные деления. Одна станина должна быть установлена на южной параллели, вторая на 10-ти секундных делениях.
- Сосчитайте деления, количество секунд и минут от южной параллели до другой станины измерителя.
- Прибавьте полученные результаты к уже имеющимся данным (которые видны сразу при измерении).
Поиск широты и долготы на Яндекс Картах
Рассмотрим, как найти точку на карте по координатам и определить их на Яндекс Картах. Откройте ссылку: https://yandex.ru/maps/?lang=ru/. Поисковая строка веб-карты тоже умеет определять координаты, но здесь их запись немного отличается от Google Maps. Система понимает такой вид: 55.555333,66.666444, где первое значение — широта, второе — долгота. А также более понятную: 45° с. ш. 24° в. д. Как видим, по заданному координату у нас отобразился город Вылча в Румынии.
Поиск по координатам в Яндекс Картах
Чтобы определить долготу и широту точки на Yandex карте, введите название населённого пункта в поисковой строке. После того, как система определит его на карте, вы сможете подсмотреть координаты под названием города слева в блоке. Эти координаты можно добавить в закладки, поделиться ими в других веб-ресурсах или отправить на своё мобильное устройство. Удобная Яндекс Карта слева в информационном блоке предлагает найти популярные заведения: кино, кафе, гостиницы, аптеки и прочее.
Определение координат в Яндекс Картах
В верхнем меню находятся другие инструменты, с помощью которых можно управлять картой или использовать её функции. Можно посмотреть текущую ситуацию на любой дороге мира. Для этого нажмите на кнопку в виде светофора. При помощи кнопки с круговой стрелкой можно отображать панорамирование улиц на карте. Выберите линейку, если необходимо измерить расстояние от одного объекта на карте до другого. Кнопка с бумажным самолётом даёт возможность определить ваше местоположение, а также широту и долготу на спутниковой карте.
Двусторонний спутниковый Интернет
Что такое географические координаты?
Географические координаты определяют положение точки на земной поверхности. Географические координаты строятся по принципу сферических и состоят из широты и долготы.
Широта — угол между местным направлением зенита и плоскостью экватора, отсчитываемый от 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 с.ш. — десятичные градусы
Для чего нужно знать координаты своего дома
Зачастую дома в дачных поселках и многих деревнях не имеют четкой навигации состоящей из вывесок с названиями улиц и нумерации домов или даже дома имея вывески с номерами могут быть раскиданы по всему поселку в случайном порядке (исторически сложившемуся по мере застройки поселка). Бывают случаи, что с навигацией в населенном пункте все хорошо, но не во всех автомобильных GPS-навигаторах такой дом или улица находится. Жителям таких домов приходится долго и, как правило, запутанно объяснять как до них добраться используя разные ориентиры. В таком случае проще дать координаты дома, ведь любой автомобильный навигатор может проложить путь по координатам.
Для проработки технической возможности подключения Интернета в загородном доме мы также просим своих заказчиков предоставить координаты дома, особенно в том случае если ни на одном из картографических онлайн-сервисов он не находится по адресу.
Определение координат с помощью картографических онлайн-сервисов
В настоящее время самыми известными картографическими онлайн-сервисами с функцией поиска являются карты Google и Yandex. Рассмотрим, как можно определить географические координаты по карте или снимку со спутника в сервисе Maps:
1. Откройте Карты Google https://maps.google.ru
2. Найдите на карте точное место. Для этого карту можно двигать мышью, приближать и удалять прокручивая колесико мыши. Также можно найти нужный населенный пункт с помощью поиска по названию используя населенный пункт, улицу и дом. Чтобы максимально точно найти место дома переключайтесь между режимами отображения: Карта, Гибрид или Спутник.
3. Щелкните правой кнопкой мыши по нужному месту на карте и выберите из открывшегося меню пункт “Что тут находится?”. На карте появится маркер в виде зеленой стрелки. Повторите операцию, если маркер установился неточно.
4. При наведении мыши на зеленую стрелку появятся географические координаты места, также они появятся и в строке поиска откуда их можно скопировать в буфер обмена.
Рис. 1. Определение координат места по указателю на карте Google
Теперь рассмотрим как можно определить географические координаты по карте или снимку со спутника в сервисе Яндекс.Карты:
Для поиска места применим тот же алгоритм, что и для поиска на картах Google. Откройте Яндекс.Карты: https://maps.yandex.ru. Для получения координат на Яндекс-карте используется инструмент «Получить информацию» (кнопка со стрелкой и знаком вопроса, в левой верхней части карты). При щелчке этим инструментом по карте на ней появляется маркер, а в строке поиска отображаются координаты.
Рис. 2. Определение координат места по указателю на Яндекс-карте
На картах поисковых систем по умолчанию показываются координаты в градусах с десятичной дробью со знаками «-» для отрицательной долготы. На картах Google и картах Яндекс вначале широта, затем долгота (до октября 2012 на картах Яндекс был принят обратный порядок: сначала долгота, потом широта).
Определяем долготу точки
- Одну станину циркуля-измерителя установите на нужную точку карты, вторую на ближайший меридиан.
- Не нарушайте растяжку прибора. Перенесите его на рамку рядом с секундами и минутами, одна станина должна быть установлена на меридиане, который находится ближе всего.
-
Посчитайте сколько минут и секунд от левого (западного) меридиана.
Обратите внимание на то, что такой расчет применим лишь к указанному масштабу карт. Если вы используете карту других масштабов, то необходимо найти подходящий метод определение широты и долготы на карте именно для вашей карты с определенным масштабом
Чтобы определить координаты на топографической карте, можно воспользоваться школьным циркулем, вместо специального прибора.
Правила определения долготы и широты
Из всего написанного выше можно сделать вывод, что для определения координат по карте решающую роль играют широта и долгота, поэтому крайне важно научиться определять их. Сначала остановимся на широте
Нулевой точкой отсчета здесь считается экватор с нулевым градусом. От него к полюсам расходятся параллели. На полюсе широта составляет 90 градусов, а все точки, расположенные на равном удалении от экватора в сторону одного из полюсов, имеют одинаковую северную или южную широту (например, 20, 40 или 60 градусов). При этом, чем дальше объект на карте от экватора и ближе к полюсу, тем больше будет его широта (рисунок 4)
Сначала остановимся на широте. Нулевой точкой отсчета здесь считается экватор с нулевым градусом. От него к полюсам расходятся параллели. На полюсе широта составляет 90 градусов, а все точки, расположенные на равном удалении от экватора в сторону одного из полюсов, имеют одинаковую северную или южную широту (например, 20, 40 или 60 градусов). При этом, чем дальше объект на карте от экватора и ближе к полюсу, тем больше будет его широта (рисунок 4).
Рисунок 4. Схемы определения широты и долготы
Географическая долгота на картах и глобусах отсчитывается от меридиана в Гринвиче, который считается нулевым. Здесь, как и в случае с широтой, удаление от этого меридиана приводит и к увеличению долготы. При этом максимальный показатель долготы составляет 180 градусов, поскольку полная окружность сферы (восточного и западного полушария) составляет 360 градусов.
Чтобы определить по карте географические координаты объекта, нужно сделать следующее:
- Определить, в каком полушарии находится точка, в северном или южном. Если выше экватора, то широта будет северной, а если ниже – южной.
- Далее нужно посмотреть, между какими параллелями располагается точка. Градусы параллелей обычно указаны сбоку карты.
- Теперь необходимо подсчитать количество градусов от ближайшей со стороны экватора параллели к заданной точке.
- Далее переходим к определению долготы. Здесь отсчет ведется от нулевого меридиана в Гринвиче. Если точка расположена слева от него, то точка находится в западном полушарии, а если справа – в восточном.
- Теперь находим, между какими меридианами находится точка, и, как и в случае с широтой, подсчитываем количество градусов до ближайшего со стороны Гринвича меридиана.
В результате вы получите точную широту и долготу, а также определенное количество градусов для каждого показателя, которые уточняют расположение объекта.
Определение координат на виртуальной карте Google
Одними из самых популярных онлайн-карт являются Google Maps и Яндекс Карты. Ими пользуются в большинстве странах мира. Чтобы открыть карты Гугл, перейдите по адресу в мобильном или веб-браузере https://www.google.ru/maps. Если у вас есть координаты, их можно ввести прямо в строке поиска. Система отлично поймёт и определит ведённые вами данные. В этих картах нужно сначала писать широту, а после долготу.
Онлайн-сервис Google Maps
Для широты корректны записи с положительным и отрицательным градусом с максимальным значением 90°. Для долготы с отрицательным и положительным значением — 180°. Дробным разделителем в Google Maps должна быть только точка, но не запятая. Иначе система может выдать ошибку. Правильно так: 43.60°S. Поисковая строка не понимает русского языка. Если вы хотите найти здесь координаты, вводите их в следующем формате 00°00’.0’’S (градусы, минуты, секунды, южной широты), затем пробел и запись долготы — 00°00’.0’’W (западной долготы).
Поиск координат в Google Maps
Google-карты имеют описание каждой местности. По заданным координатам можно найти населённый пункт, его название на разных языках и добавить информацию от себя. В Google Maps есть 2 режима просмотра карты: обычный и со спутника. Вы можете включить режим просмотра улиц. И найти название улицы в любом городе, любой страны. Если вы хотите определить координаты точки на карте, которых у вас нет, введите в поисковой строке название населённого пункта.
Слева в блоке будет его координаты и описание. Формат записи в этих картах нам уже известен. Поэтому не составит труда переписать его в удобной для себя форме. При помощи дополнительных инструментов карту можно вращать, ставить метки, измерять маршруты между городами и многое другое.
Откуда берем данные и чем ищем по географическим объектам
Подступаясь к задаче, мы изучили готовые решения: где взять справочник координат с адресами и как потом искать по этому справочнику географические объекты. Оказалось, за нужными инструментами даже не придется далеко ходить.
Адресные объекты получаем из ФИАС — Федеральной информационной адресной системе. Это самый полный из открытых и официальных адресных справочников. Подробно о нем мы писали на «Хабре», а для этого материала важны четыре факта:
в ФИАС хранятся все адресные объекты страны, от регионов и ниже — до зданий и дополнительных территорий;
справочник свободно доступен в форматах DBF и XML;
ФИАС не идеален — в нем отсутствуют десятки тысяч домов и множество улиц, особенно новых;
каждому адресному объекту в справочнике соответствует уникальный ID — ФИАС-код
Код объекта иногда меняют, но для нашей статьи это не так важно.. Адресные объекты, загруженные из ФИАС вместе с 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-деревьях, на которых построен алгоритм поиска).
Как только мы узнали об у́дали Lucine, проблема с поиском решилась почти сама. Делов осталось — пройтись наждачкой.
- Загрузили в Lucene свой справочник координат и адресов, получили индекс. Для легкости убрали из него почти все, оставив лишь ID адресов и координаты.
- Наладили поиск по индексу: на вход — координаты, на выход — ID найденных адресных объектов. Другой информации поиск не возвращает, поскольку индекс мы донельзя скукожили.
- Насытили выдачу, загружая из «большого» ФИАС данные по найденным ID. Добавляем много всего, от нужного всем адреса одной строкой до признака столицы региона у городов.
- Придумали, как сортировать и отдавать полученные объекты.
Пока все выглядит просто, но это лишь малая часть работы. Никакого поиска адреса по координатам не получилось бы, не собери мы приличный справочник.