Что такое lat lon в координатах
Перейти к содержимому

Что такое lat lon в координатах

  • автор:

Что ты должен знать про географические координаты

  • Широта, Latitude, lat — идет с севера (North, N) на юг (South, S).
  • Долгота, Longitude, lng — идет с запада (West, W) на восток (East, E).
  • Практически всегда координаты идут в порядке “широта, долгота” — Lat, Lng. В Google Maps, в Яндекс-Картах, в Википедии. Это стоит зазубрить: в географии сначала идет Y, потом X.
  • И широта, и долгота измеряются в градусах. Градус можно понимать как геометрический градус, то есть 1/360 земной окружности. Иногда их записывают в виде дробного числа, с которым все понятно; иногда — в “часовом” виде: 12°34’56» — 12 градусов, 34 минуты, 56 секунд. Такая запись легко переводится в дробь: deg + min/60.0 + sec/3600.0
  • Долгота изменяется от -180 до +180; ноль — Основной меридиан, проходящий через Гринвич, минусовые значения — западное полушарие, плюсовые — восточное.
  • Широта изменяется от -90 до +90. Ноль — экватор, минусовые значения — южное полушарие, плюсовые — северное.
  • Длина одного градуса долготы непостоянна, поскольку долгота откладывается по окружности, параллельной экватору, и длина этой окружности уменьшается с увеличением (по модулю) широты. Считай длину градуса долготы по формуле

def lng_2_km(lat)  EARTH_RADIUS*(Math::PI/180)*cos(lat*Math::PI/180) # EARTH_RADIUS = 6371 end 
def nearest(lat, lng, radius)  lat2km = LAT_DEGREE_KM # 111  lng2km = lng_2_km(lat)  # lat2km*dlat = lng2km*dlng = lateral_distance_km  # 2*lateral_distance_km^2 = radius^2  # lateral_distance_km = radius / sqrt(2)  dlat = radius / (lat2km * Math.sqrt(2))  dlng = radius / (lng2km * Math.sqrt(2))   where(:lat => (lat-dlat)..(lat+dlat), :lng => (lng-dlng)..(lng+dlng)) end 

Пересчет координат из Lat/Long в проекцию Меркатора и обратно

Описаны формул пересчета широты/долготы в плоские координаты по проекции Меркатора на сфере по версии Google Maps и на эллипсойде WGS84.

Картографический веб-сервис Google Maps для отображения карт использует проекцию Меркатора на сфере. Для начала рассмотрим более общий случай проекции Меркатора для эллипсоида WGS84, а потом будет не сложно перейти к сфере.

Содержание

  1. Пересчет координат из широты/долготы в проекцию Меркатора
  2. Проверка результатов
  3. Пересчет координат из проекции Меркатора в широту/долготу
  4. Реализации пересчетов

Описание проекции Меркатора более подробно можно посмотреть в следующих источниках:

  1. POSC Specifications
  2. Wikipedia
  3. Google Maps Projection and Coordinate system

Пересчет с помощью библиотеки PROJ.4:

В процессе пересчета понадобятся также следующие параметры:

  • Ложный сдвиг на восток False Eastings = 0
  • Ложный сдвиг на север False Northings = 0
  • Масштабный коэффициент Scale Factor = 1
  • Большая полуось эллипсоида WGS84: a = 6378137.0 м
  • Малая полуось эллипсоида WGS84: b = 6356752.3142 м
  • Сфера используемая в Arcview GIS: a=b=6370997

Будем использовать для примера координаты г. Москва: 55.751667 с.ш., 37.617778 в.д.

Пересчет координат из широты/долготы в проекцию Меркатора

  • lon/lat — долгота/широта в радианах;
  • e — эксцентриситет эллипса;
    • где: f — коэффициент уплощения Земли
    • или выразив эксцентриситет через полуоси:
    Lat=55.751667 Long=37.617778 rLat=Lat*pi/180 rLong=Long*pi/180 a=6378137 b=6356752.3142 f=(a-b)/a e=sqrt(2*f-f^2) X=a*rLong Y=a*log(tan(pi/4+rLat/2)*((1-e*sin(rLat))/(1+e*sin(rLat)))^(e/2)) X [1] 4187592 Y [1] 7473789

    Пересчет в Proj.4:

    proj +proj=merc +ellps=WGS84 37.617778 55.751667 4187591.89 7473789.46

    Для пересчета на сферу:

    proj +proj=merc +ellps=sphere 37.617778 55.751667 4182904.10 7500731.48

    Скачать пример пересчета координат из Lat/Long в Mercator на сфере и эллипсоиде WGS84 (Excel).

    Проверка результатов

    lat = 55.751667, long = 37.617778

    Arcview GIS Proj Excel
    WGS84 7473789.46 4187592.00 7473789.46 4187591.89 7473789.462 4187591.892
    Сфера 7500731.48 4182904.10 4182904.10 7500731.48 7500731.483 4182904.096

    Пересчет координат из проекции Мекартора в широту/долготу

    Широта вычисляется методом приближения в цикле:

    Расчитаем для примера координаты нашего проверочного пункта в географической системе координат WGS 84, используя как исходные координаты из предыдущего примера:

    Y=7473789 X=4187592 a=6378137 b=6356752.314 f=(a-b)/a e=sqrt(2*f-f^2) eh=e/2 pih=pi/2 ts=exp(-Y/a) phi=pih-2*atan(ts) i=0 dphi=1 while () < con=e*sin(phi) dphi=pih-2*atan(ts*((1-con)/(1+con))^e))-phi phi=phi+dphi >rLong=X/a rLat=phi Long=rLong*180/pi Lat=rLat*180/pi

    Реализации пересчетов

    Реализация пересчета на языке C++ (Источник: Proj.4, PJ_merc.c). Реализации на языках Java, Python, C# и др. для направления DD->Mercator доступны в Вики Openstreetmap.

    private static const PI_2:Number = Math.PI * 0.5; private static const MAX_LAT:Number = 89.5; private static const R_MAJOR:Number = 6378137.0; private static const R_MINOR:Number = 6356752.3142; private static const ECCENT:Number = Math.sqrt(1 - Math.pow(R_MINOR / R_MAJOR, 2)); private static const ECCNTH:Number = ECCENT * 0.5; public static function merc_x(longitude:Number):Number < return longitude * DEG_RAD * R_MAJOR; >public static function unmerc_x(longitude:Number):Number < return longitude * RAD_DEG / R_MAJOR; >public static function merc_y(latitude:Number):Number < if (latitude >MAX_LAT) latitude = MAX_LAT; if (latitude < -MAX_LAT) latitude = -MAX_LAT; var phi:Number = latitude * DEG_RAD; var con:Number = ECCENT * Math.sin(phi); con = Math.pow( (1.0 - con) / (1.0 + con), ECCNTH ); return -R_MAJOR * Math.log( Math.tan(0.5 * (PI_2 - phi)) / con ); >public static function unmerc_y(y:Number):Number < var ts:Number = Math.exp(-y / R_MAJOR); var phi:Number = PI_2 - 2.0 * Math.atan(ts); var i:uint = 0; var dPhi:Number = 1; while( (dPhi >= 0 ? dPhi : -dPhi) > 0.000000001 && i++ < 15 ) < var con:Number = ECCENT * Math.sin(phi); dPhi = PI_2 - 2.0 * Math.atan (ts * Math.pow((1.0 - con) / (1.0 + con), ECCNTH)) - phi; phi += dPhi; >return phi * RAD_DEG; >

    Ссылки по теме

    • Ссылка на дополнительный источник информации внутренняя
    • Ссылка на дополнительный источник информации внешняя

    Последнее обновление: September 09 2021

    Широта/долгота или долгота/широта?

    Когда речь идет о паре географических координат, геопространственное ПО все еще не может определиться в одном: в каком порядке указывать долготу и широту. Координаты часто представлены в виде массивов [-87.73, 41.83], а не объектов < long: -87.73, lat: 41.83 >. Это оставляет разработчику право определить, что такое «-87.73» — долгота или широта. Одна пара координат приведет вас в Чикаго, а другая — в Антарктиду.

    В работе приходится использовать комбинации библиотек и ПО, и многие из них требуют разный порядок координат: lon/lat или lat/lon. Не существует единого установленного для всех порядка, что приводит к путанице и ошибкам.

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

    Долгота, широта
    Широта, долгота

    А как в других форматах: GPX, OSM XML и GML?

    Форматы, которые представляют широту и долготу отдельными атрибутами XML, не определяют порядок координат, потому что атрибуты XML не упорядочены. GML позволяет диктовать порядок системе данных, и некоторые данные могут иметь порядок lat/lon, а другие — lon/lat.

    Какой вариант правильный?

    На этот вопрос нет четкого ответа, оттого и путаница. География отдает предпочтение lat/lon, а математика и IT предпочитают lon/lat. В математике упорядоченная пара x, y более привычна, чем y, x, а если добавить к координатам высоту, то lat/lon приведет к еще более непривычному виду y, x, z.

    Почему в географии принято ставить широту на первое место?

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

    А что говорят стандарты?

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

    Сам Том МакРайт при этом считает, что долгота должна стоять первой. Форматы данных менять сложнее и дольше, чем программное обеспечение, и многие геоформаты уже поставили долготу на первое место. Порядок долгота/широта принят еще в древнем формате WKT, в стандартном шейп-файле, в удобном GeoJSON, а также в KML. Относительно известные форматы, которые ставят широту на первое место, — это GeoRSS Simple и алгоритм Google Encoded Polyline. GeoRSS Simple встречается редко: чаще используют GeoRSS GML, а в GML нет установленного порядка координат.

    Многое ПО с открытым исходным кодом сейчас использует порядок долгота/широта. Известное исключение — Leaflet, и разработчик Крис Хенрик показал на примере, как разный порядок координат библиотек Leaflet и Turf.js приводит к необычным результатам. Так что, чтобы избежать проблем, всегда проверяйте, какой порядок координат ждет от вас программа.

    • lat lon — Tom MacWright;
    • longitude-latitude is the right way — Tom MacWright;
    • Lat Lon or Lon Lat? — Chris Henrick, Feb 7, 2021.

    Перевод «lat/lon» на русский

    Enhancement: On position input (menu item ‘View | Go to Position. ‘), the lat/lon values are verified for valid range (thanks to AG17).

    При вводе координат (меню ‘Вид | Перейти к координатам. ‘) введена проверка значений на диапазон допустимых значений (thanks to AG17).

    Why is the lat/lon for my IP in Kansas?
    Почему координаты моего IP-адреса в Канзасе?

    Measuring is calculated using the lat/lon coordinates from point to point and does not consider elevation.

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

    Own ship’s position (Lat/Lon every 0.001 min, Loran C LOP), water temperature (ºC/ ºF/Graph display), ship’s speed (km/h, mph, kt), Own ship’s bearing

    При подключении к навигационному блоку и температурному датчику: позиция судна (LAT/LON каждую 0,001 мин, Loran C LOP), температура воды, скорость судна, азимут собственного судна

    Предложить пример

    Другие результаты

    The new poles are at the Lat/Long we gave some months ago.
    Новые полюса находятся в точках с шириной и долготой, которые мы дали несколько месяцев назад.

    For aerodromes not listed in the relevant AIP, indicate location in LAT/LONG or bearing and distance from the nearest significant point, as described in DEP/, above.

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

    The first point of the route (name or LAT/LONG) or the marker radio beacon, if the aircraft has not taken off from an aerodrome.

    первая точка на маршруте (название или LAT/LONG) или маркерный радиомаяк, если воздушное судно не взлетело с аэродрома.

    That’s the lat/long.
    Возможно неприемлемое содержание

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

    Ничего не найдено для этого значения.
    Больше примеров

    Новое: Reverso для Windows

    Переводите текст из любого приложения одним щелчком мыши .

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

    Результатов: 11 . Точных совпадений: 7 . Затраченное время: 4832 мс

    Помогаем миллионам людей и компаний общаться более эффективно на всех языках.

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

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