2017-09-13 99 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课程,但它本质上只是先进的。我们正在进行表单提交和验证。我前段时间教过自己的东西!再次感谢您的帮助!这篇文章是关于我选择备份的不同方面的项目,但我会注意到我将来如何发布! –