2012-04-29 73 views
1

我有一個當前位置:以度數(點A)表示的經度和緯度值,以及最終位置(點B)的緯度和經度值。 我需要計算兩點之間的路線(也以度爲單位),並計算給定速度(以km/s爲單位)和時間跨度(以秒爲單位)來計算新位置。計算知道起點,速度,時間跨度和路線的第二個點

例(僞代碼):

PointA.Lat = x.xxxx; 
PointA.Lng = x.xxxx; 
PointB.Lat = x.xxxx; 
PointB.Lng = x.xxxx; 
Speed = 3; 
TimeSpan = 0.1; 
Course = GetCourse(PointA, PointB); 

NewPoint = CalculatePoint(PointA, Course, Speed, TimeSpan); 

我想用會有地理座標類的,但我不知道我的廣告有如何實現自己所有的計算。 (我沒有GPS - 這只是一個模擬和那些假的點)。

有人可以幫助我的數學或與一些可以做到這一點免費的包,可以很容易地對我的代碼完整?

順便說一句我正在使用C#。

謝謝。

+0

也許這裏有'C#'特定的庫,但從數學的角度來看,你熟悉球形座標嗎? Lat' /'Lng'角度是這個幾何體中的座標。 – ja72 2012-04-29 12:59:09

回答

0

我想這是一個評論,但我沒有所需的代表。

您正在尋找的是一個大地測量圖書館,爲您提供「大地測量反演」和「大地測量直接」計算。我不知道任何我自己,但嘗試搜索「c#大地測量圖書館」

前者給出了兩個地理座標之間的方位和距離,後者給出了一個給定方位的新座標和距第一個座標的距離。

因此,對於你的問題:1。 使用逆得到點A和PointB 2.計算從時間和速度的目的地距離, 3.將軸承和距離進入直接拿到之間的軸承希望的目的地NewCoord。

從第一原理編碼這些計算將是相當可觀的,並且需要WGS84橢球的參數(大概)。這是起點。

希望這會有所幫助。