Рассчитать расстояние между точками (широта, долгота) с NetTopologySuite - PullRequest
0 голосов
/ 18 февраля 2020

Я следовал этой статье https://docs.microsoft.com/en-us/ef/core/modeling/spatial, но не работает.

var seattle = new Point(-122.333056, 47.609722) { SRID = 4326 };
var redmond = new Point(-122.123889, 47.669444) { SRID = 4326 };

var distance = seattle.ProjectTo(2855).Distance(redmond.ProjectTo(2855));

Этот код возвращает расстояние = 17062 метра

С сайтов Калькулятор расстояния I ' м получая расстояние = 17,02 километра

Расстояние примерно такое же для примера в статье.

Но если я выберу следующие координаты:

var seattle = new Point(1.230469, 19.973349) { SRID = 4326 };
var redmond = new Point(17.753906, 19.642588) { SRID = 4326 };

var distance = seattle.ProjectTo(2855).Distance(redmond.ProjectTo(2855));

Этот код расстояние возврата = 1926891 метров

С веб-сайтов расстояние = 1728 километров

Разница составляет около 200 метров прибл. Я тестировал в других местах, и результаты хуже

В статье есть комментарий: // Для разных данных требуется другая система координат.

Что это значит? Должен ли я использовать другую систему координат, чем 2855? Какой?

...