Координатный квест: как найти координаты и расстояния без регистраций и смс

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

В обычный рабочий день, во время занятия своими IT-проектами на работе, ко мне подошел начальник с просьбой: «Необходимо определить расстояние до границы регионов для указанных адресов». Более того, это нужно сделать без использования платных сервисов и онлайн-карт через API, а полагаясь только на свои умения и знания. Я, как IT-специалист, понял задачу, принял вызов и получил желанную таблицу Excel, чтобы приступить к работе.

Вступление

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

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

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

Python был моим главным инструментом для анализа, обработки и вычислений. Для разработки я использовал Jupyter Notebook (Anaconda), PyCharm и DataSpell от компании JetBrains в зависимости от предпочтений. Для данного проекта я использовал библиотеки Numpy, Pandas, Plotly, Geopy и Selenium.

Здесь завершается начало, перейдем к существу.

Великий старт

Для определения расстояния до границы требуются координаты самой границы, что является неизбежным. Ручное выбор точек на карте было не слишком желательным для меня, и моя попытка найти готовые координаты полностью провалилась. Однако, к счастью, я нашел json-файл, содержащий информацию о местоположении границ субъектов России, включая необходимые точки.

Вначале я извлекаю необходимые области данных. Затем я импортирую необходимые библиотеки для дальнейшей обработки. Я сохраняю данные файла в словаре и осуществляю просмотр содержимого объекта.

Импорт библиотек для работы с файлами в формате «.json»:import jsonИмпорт библиотеки для обработки и анализа данных:import pandas as pdИмпорт библиотеки для работы с многомерными массивами:import numpy as npЧтение файла с координатами всех регионов:with open(‘data//gadm41_RUS_1.json’, encoding = ‘utf-8’) as js:dict_coordin_border = json.load(js)

Содержимое файла преобразовано в словарь.

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

  • название субъекта федерации находится в словаре dict_coordin_border[‘features’] [‘properties’][‘NL_NAME_1’];
  • Список координат границ субъектов хранится в словаре dict_coordin_border. В этом словаре ключ ‘features’ содержит информацию о геометрии границ. Внутри ключа ‘geometry’ находятся координаты, сохраненные под ключом ‘coordinates’.

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

  • регион — это название территории
  • lon представляет собой координату долготы, указывающую положение точки на границе.
  • lat — географическая широта расположения точки на границе;
  • sequence_number — индекс, определяющий положение записи в порядке следования;
  • Цвет региона определяет его окраску.
Советуем прочитать:  Воинские звания и знаки различия в армии Российской Федерации

Зачем нужна цветовая кодировка и нумерация? Ответ на этот вопрос будет дан позже, а пока предлагаю рассмотреть примеры кода:

df_coord_reg = pd.DataFrame()for regions in dict_coordin_border[‘features’]:if regions[‘properties’][‘NL_NAME_1’] in [‘Воронежскаяобласть’, ‘Брянскаяобласть’, ‘Курскаяобласть’, ‘Ростовскаяобласть’, ‘Белгородскаяобласть’]:for list_coordin_lv_1 in regions[‘geometry’][‘coordinates’]:for list_coordin_lv_2 in list_coordin_lv_1:for list_coordin_finish_lvl in list_coordin_lv_2:region_name = regions[‘properties’][‘NL_NAME_1’]coordinates = list_coordin_finish_lvlsequence_number += 1if region_name == ‘Воронежскаяобласть’:color = ‘purple’elif region_name == ‘Брянскаяобласть’:color = ‘white’elif region_name == ‘Курскаяобласть’:color = ‘blue’elif region_name == ‘Ростовскаяобласть’:color = ‘yellow’elif region_name == ‘Белгородскаяобласть’:color = ‘red’df_coord_reg = df_coord_reg.append((region_name, coordinates, sequence_number, color))<'region': regions['properties']['NL_NAME_1'], #Название региона 'lon': list_coordin_finish_lvl[0], #Долгота точки границы 'lat': list_coordin_finish_lvl[1], #Широта точки границы 'sequence_number': str(sequence_number), #Порядковый номер записи 'color': color>sequence_number += 1 # Последовательный номер# Игнорировать индекс цвета региона и увеличить номер последовательности на единицу

В результате получается такой набор данных:

предоставит переформулированный текст, выполненный на русском языке.

На данный момент у меня имеются данные о географических координатах границ регионов с каждой стороны. Однако, такая информация не является совсем полезной, поскольку действительно интересуют только те участки границ, которые не совпадают друг с другом. В связи с этим, я желаю рассказать о библиотеке plotly, которая поможет наглядно визуализировать и анализировать эти данные.

Плотли — это инструмент, который служит для создания интерактивных визуализаций данных. С его помощью вы можете построить различные графики, диаграммы, карты распределения, 2D и 3D графики и многое другое. Эта библиотека имеет мощные возможности визуализации данных и может помочь вам разместить точки на карте. Более подробную информацию о плотли вы можете найти по ссылке.

Приведенный ниже код представляет точки на карте Европы в географическом отображении.

Мы используем plotly.graph_objs для визуализации данных на карте. Мы отображаем точки с координатами для проверки и анализа. В нашем графике используется Scattergeo, который представляет данные в виде географических точек. Мы указываем долготу и широту каждой точки, задаем вид точки, цвет точки и текст, который будет отображаться при наведении на точку. Кроме того, мы задаем название карты и определяем шаблон карты, цвет для стран и цвет границ между странами. Ширина карты составляет 1500 пикселей, а высота — 750 пикселей.

Результат, полученный в результате выполнения кода:

Регионы Российской Федерации

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

Я отбираю номера точек, расположенных на граничных участках, и записываю информацию в dataframe.

Мы можем выбрать определенные срезы из DataFrame, основываясь на карте, и сохранить их в новую переменную с именем df_coord_border. Для этого мы объединяем несколько срезов df_coord_reg в один DataFrame, используя функцию concat. Срезы, которые мы выбираем, находятся в следующих диапазонах индексов: от 11 до 411, от 1278 до 1459, от 974 до 1226, от 3084 до 3157 и от 2004 до 2413.

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

Чтобы убедиться в достоверности, повторно визуализировал информацию и сохранил полученные координаты в формате json в отдельном файле.

fig = go.Figure(data=go.Scattergeo(lon=df_coord_border[‘lon’],lat=df_coord_border[‘lat’],mode=’markers’,marker_color=df_coord_border[‘color’],text=df_coord_border[‘region’] + ‘ ‘ + df_coord_border[‘sequence_number’]))fig.update_layout(title=’Границы субъектов РФ’,geo=dict(scope=’europe’,landcolor=»green»,countrycolor=»black»),width=1500,height=750)df_coord_border[[‘lon’, ‘lat’]].to_json(‘data//border.json’)

Как найти место по координатам

Как найти место по координатам?

Как найти нужное место на карте, используя географические координаты? Школьники уже давно интересуются этим вопросом и стараются разобраться в его сложностях. Однако, если иметь понимание о градусной сети и осознание значения координат, они смогут освоить этот навык.

Что такое градусная сеть?

Сеть градусов или координатная сеть — это система линий на карте, которые могут быть параллельны экватору или соединять полюса.

В географической науке используется термин «параллели» для обозначения линий, которые идут параллельно экватору. Но их размеры различаются. Самая длинная параллель находится на одинаковом расстоянии от полюсов и называется экватором. От него начинается отсчет в направлении полюсов и простирается от 0 до 90°. На географических картах изображаются не все параллели, обычно выбирают каждую десятую или тридцатую.

Географические линии, соединяющие северный и южный полюс, получили название меридианов, их протяженность остается постоянной. Международные собрания решили признать меридиан, проходящий через историческую Гринвичскую обсерваторию недалеко от Лондона, основным меридианом по умолчанию. Используется шкала от 0 до 180 градусов для измерения.

До окончания XIX века различные государства определяли свой собственный нулевой меридиан. В России этот меридиан проходил через Пулковскую обсерваторию, расположенную под Санкт-Петербургом.

Что такое географические координаты?

Значения географических координат отражают расстояние до экватора и Гринвичского меридиана в градусах. Они определяются как для Северного, так и для Южного полушарий, а также в их восточной и западной частях.

С помощью параллелей определяются географические координаты широты, как северной (с.ш.) так и южной (ю.ш.). Путем использования меридианов определяются координаты долготы, включающие западную (з.д.) и восточную (в.д.) стороны.

Географические показатели местоположения

Как найти место по координатам?

Когда известны координаты, необходимо определить соответствующие параллель и меридиан на карте. Например, для поиска города с координатами 56°с.ш., 38°в.д., следует обратить внимание на то, что этот населенный пункт находится в Северном полушарии, в его восточной части. Для определения широты можно использовать 50-ю и 60-ю параллели, разделив расстояние между ними на 10 участков и отсчитав 56-ю параллель.

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

Для определения долготы проводим поиск 30-го и 40-го меридианов, разделяем исследуемый отрезок на 10 равных частей и определяем положение 38-го меридиана.

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

Советуем прочитать:  Куда платить и как государственную пошлину для искового заявления

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

На некоторых географических картах, промежутки между параллелями и меридианами разделены на градусы. Такие специальные шкалы для параллелей находятся на окраинах карты, а для меридианов — на линии экватора.

Что мы узнали?

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

Введение в поиск мест на карте

Введение в поиск мест на карте

Геопоиски на карте — неразрывная составляющая геоинформационных систем. Геокодирование представляет собой процесс, который преобразует описание местоположения (такие как координаты, адрес или название места) в конкретное местоположение на земной поверхности. Вы можете осуществлять геокодирование, предоставляя одно описание местоположения за раз, чтобы получить его местоположение на карте, или преобразовывать всю таблицу, которая может быть использована для анализа пространственных данных.

Поиск локаций на карте (географический поиск)

  • Города
  • Достопримечательности
  • Заголовки для предприятия
  • Географические координаты
    • Горы
    • Реки
    • Перекрестки дорог
    • На улицах размещены здания, каждое из которых обладает индивидуальным номером и наименованием улицы.
    • Индексы почтовых отделений
    • Географическая широта и долгота
    • Данные в координатной системе документа схемы
    • Методика определения местоположения с использованием прямоугольной системы координат (MGRS) в военных целях.
    • Система национальной сетки Соединенных Штатов Америки (USNG)
    • выражаются в системе координат Universal Transverse Mercator (UTM).
    Примечание:

    Не нужно использовать специальные локаторы в проекте для поиска местоположений x, y. ArcGIS Pro позволяет найти эти местоположения x, y с помощью панели «Найти с использованием поставщика XY».

    Примечание:

    Инструмент Создать локатор или инструмент Создать локатор объектов и локаторов ArcGIS StreetMap Premium предлагает возможность использовать глобальный поиск координат (широта/долгота, MGRS, DD или USNG). Опция поиска координат может быть включена или отключена в разделе Поддерживаемые категории на странице Опции геокодирования в диалоговом окне Свойства локатора этого специфического локатора.

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector