2017-09-13 37 views
-3

正如標題所示,我試圖根據x英里內的另一個座標生成一個座標(或者哪個單元是最方便)輸入的半徑。輸入一個地理座標,返回該輸入座標x英里內的座標 - C#.NET

作爲一個例子:

  • 我的39.083056給定的地理座標(緯度,經度),-94.820200
  • 我想要返回另一組座標,該座標位於該座標半徑x 的範圍內,如39.110998,-94.799668
  • x英里半徑與返回的 座標在x英里半徑範圍內並不重要。

我已經搜查,搜查,但我必須尋找錯誤的事情,因爲所有的,我已經能夠找到看起來他們非常接近到什麼,我試圖做的,但職位沒有完全打釘在頭上。

+0

是的,告訴我們你目前的代碼是怎樣的,然後我們可能會幫助你。 – Juan

+0

如果你已經搜索並搜索了它,通常是一個好主意,列出你發現的內容以及爲什麼它不符合你的需求。你可以在這裏輕鬆修改答案:https://stackoverflow.com/questions/639695/how-to-convert-latitude-or-longitude-to-meters –

+0

我的壞人。我在這裏提出這個問題的時候,我已經被燒死了。我有一個漫長的一天,只想睡覺:P我一定會發布我下次嘗試提問時所嘗試的內容! –

回答

0

對不起,你被低估爲遺忘。我明白,試圖在不知道要搜索什麼的情況下搜索某些內容會令人沮喪。

您可能也有興趣Orthodromic Lines/Distanceswiki。如果這個答案不能滿足你的需求,至少你有一個新的術語谷歌,並希望會引導你一個適合。

您可以嘗試使用Geo庫。它的文檔是稀疏的一面,但它確實包含可能對你有用的方法:CalculateOrthodromicLine(startPoint, heading, distance)

僞代碼是這樣簡單的東西:

var startPoint = new Coordinate(lat, long); 
var heading = Random between 0 and 360 degrees 
var distance = Random between 0 and X metres 
var endPoint = //<-- et voila! 
    GeoContext.Current.GeodeticCalculator 
    .CalculateOrthodromicLine(startPoint, heading, distance) 
    .Coordinate2; 

編輯:正如維基提到,地球不是一個完美的球體,而是一個球體。圖書館的GeoContext.Current默認使用其Spheroid計算,所以你應該沒問題。

祝你好運!

+0

NPras,謝謝你的輸入。這最終爲我工作。展望未來,我一定會發布我所嘗試過的。 –

+0

是啊,這裏有許多公然懶惰的人來這裏要求其他人做功課。這似乎並不是其中之一,實際上這是一個有趣的問題,我問過自己但從未困擾過查詢。我說這對我們雙方都是一場勝利! – NPras

+0

我會承認,我在高級C#ASP.NET課程,但它本質上只是先進的。我們正在進行表單提交和驗證。我前段時間教過自己的東西!再次感謝您的幫助!這篇文章是關於我選擇備份的不同方面的項目,但我會注意到我將來如何發佈! –