Как рассчитать расстояние между 2 точками (координаты проекции Lambert EU)

Я настоящий новичок, когда дело касается систем координат / проекций и расчетов, поэтому, пожалуйста, говорите со мной как с манекеном :)

У меня есть координатные данные (написано, что это проекция Ламберта ЕС), которые выглядят следующим образом:

R A00   x_center    y_center
1 svk   519922,4822 2089546,836
2 aut   486321,4714 2087458,014
3 aut   493858,9945 2085882,625

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

Целью является:

  • Мне нужно было бы рассчитать расстояние в км между двумя точками, например, строка 1 (x, y) и строка 2 (x, y).
  • Мне понадобится самая простая из имеющихся формул (не требуется высокой точности)
  • Затем расчет должен выполняться в Oracle PL / SQL (код PL / SQL, так как ваш ответ приятно иметь, но не требуется, меня больше беспокоят заданные координаты и то, как с ними рассчитать расстояние в километрах).

Может ли кто-нибудь указать мне правильное направление? Спасибо


person Toni Kanoni    schedule 06.03.2013    source источник
comment
Здравствуйте, не могли бы вы ответить?   -  person AlexWien    schedule 08.03.2013
comment
Привет, я проверю в понедельник и, надеюсь, приму / закрою дело, спасибо за ваш ответ!   -  person Toni Kanoni    schedule 08.03.2013


Ответы (1)


Насколько я помню, координаты Ламберта уже в декартовых метрах.

поэтому просто используйте sqrt(dx*dx +dy*dy), чтобы получить расстояние в метрах, где dx=x2-x1 и dy=y2-y1.

Если вам нужно преобразовать их в WGS84, то это станет более сложным:

Сначала вы должны узнать точное название проекции, лучше всего по номеру проекции EPSG. (это более чем одна проекция Ламберта, например, французский Lambert 2 etendue)

Тогда придется поискать еще больше, есть документы, описывающие проекцию Ламберта.

person AlexWien    schedule 06.03.2013
comment
Привет, я также получил ответ от компании, предоставившей нам данные. Они сказали, что расстояние рассчитывается как sqrt ((x1-x2) ² + (y1-y2) ²) - так что ваш ответ был почти там ;-) - person Toni Kanoni; 15.03.2013
comment
Нет, не совсем близко, мой ответ точно такой же; dx - это то же самое, что x2-x1, в технике он также называется deltaX, я думал, что это хорошо известно. (Вы выучили это в школе (Пифагор, евклидова или декартова дистанция), не стесняйтесь голосовать и соглашаться. - person AlexWien; 15.03.2013
comment
@ToniKanoni, мой ответ совершенно правильный и идентичен ответу вашего поставщика данных (поскольку dx = x2 - x1) и dx² = dx * dx; (dx * dx более эффективен, чем вызов Math.pow ()) - person AlexWien; 15.03.2013
comment
Ага, да, я вижу, ты все время был прав. Спасибо за Ваш ответ! - person Toni Kanoni; 15.03.2013
comment
Есть идеи, насколько это приближение к истинному сферическому расстоянию? - person smaccoun; 07.12.2013
comment
Истинного расстояния нет. сферический не идеален, потому что Земля больше эллипсоид, чем сфера. Существуют формулы для эллипсоидального расстояния (например, ищите формулу / алгоритм Виченсиса). Дальнейшее отклонение всегда зависит от местоположения и расстояния. Вы можете попробовать: преобразовать ламберта в wgs84, вычислить расстояние с помощью a) haversine fomrula, b) с точностью и сравнить их. - person AlexWien; 08.12.2013