Вот мой упрощенный код:
var P1 = Common.Geography.CreatePoint((decimal)-73.980000, (decimal)40.7155773);
var P2 = Common.Geography.CreatePoint((decimal)-73.984434, (decimal)40.7155773);
var Distance = P1.Distance(P2);
Вот функция «CreatePoint»:
public static DbGeography CreatePoint(decimal Longitude, decimal Latitude)
{
return DbGeography.FromText(String.Format(CultureInfo.InvariantCulture, "POINT({0} {1})", Longitude, Latitude));
}
Я видел в нескольких источниках, что результаты должны быть в метрах, поэтому я ожидалсм. 493 :
http://boulter.com/gps/distance/?from=-73.98%2C40.7155773&to=-73.984434%2C40.7155773&units=k
Показатель Google Maps показывает тот же результат (но не позволяет поделиться ссылкой).
ОднакоРезультат, который я получил от функции «Расстояние», равен 374.65 . Я проверил CoordinateSystemId для обоих объектов, и он имеет значение по умолчанию 4326.
Так что я делаю не так? Или в каких единицах этот результат?