实体框架6 DbGeography.Distance()不正确和不一致

时间:2015-04-04 18:59:00

标签: entity-framework entity-framework-6 geospatial

我使用DbGeography类并尝试找到2点之间的距离,这让我感到非常困惑。我知道这些坐标的格式是WKT(long,lat),但是我仍然得到不正确的值,它们甚至不一致。

在break语句中查看这两个截图,第二个在循环后进行一次迭代。

我得到了距离所有这些奇怪的负数...但更重要的是,它似乎不一致地计算它们。查看

的监视表达式
coordinateInMemory.Distance(userCoordinateInMemory)

它给-3.96 .....同时distanceInMemory,(使用相同的代码行设置!)的值为10036 ....

在第二个截图中,他们都是负数,即使手表中的2个点是有效的经度,纽约的纬度点

到底发生了什么事?

enter image description here enter image description here

    public DbGeography CreatePoint(double longitude, double latitude)
    {
        var text = string.Format(CultureInfo.InvariantCulture.NumberFormat,
                    "POINT({0} {1})", longitude, latitude);
        // 4326 is most common coordinate system used by GPS/Maps
        return DbGeography.PointFromText(text, 4326);
    }

0 个答案:

没有答案