我想要找到地球上兩點之間的距離(使用WGS84)和System.Data.Entity.Spatial.DbGeography看起來像一個很好的呼喊,但我沒有收到來自距離函數預期的結果時,點有一個海拔:System.Data.Entity.Spatial.DbGeography與高程距離
var geogA = DbGeography.PointFromText("POINT(179.04 89.77 100)", 4326);
var geogB = DbGeography.PointFromText("POINT(179.04 89.77 200)", 4326);
var distance = geogA.Distance(geogB); //distance is 0, not 100
我期待的距離能夠採取高度考慮,以及 - 我在這裏缺少一些東西明顯?我相信這一定是相當微不足道的,但我對它背後的數學知之甚少,所以我可能沒有資格發表這樣的聲明。
我的直覺告訴我,只是在這裏使用畢達哥拉斯,但我不是100%肯定這是正確的。
我不知道你的代碼是否會直接在SQL中工作,即STGeomFromText,但它在.NET代碼中不起作用。 –
是的,我會看看我是否可以找到包含這個dll的副本,看看我是否得到不同的結果。看起來,至少DbGeography的文檔是直接從SQLGeography類複製的:https://msdn.microsoft.com/en-gb/library/microsoft.sqlserver.types.sqlgeography(v = sql.105) .aspx –