输入地理坐标,返回输入坐标 x 英里内的坐标 - C# .NET

Posted

技术标签:

【中文标题】输入地理坐标,返回输入坐标 x 英里内的坐标 - C# .NET【英文标题】:Input a geographic coordinate, return a coordinate within x miles of that inputted coordinate - C# .NET 【发布时间】:2017-09-13 04:54:45 【问题描述】:

正如标题所示,我正在尝试根据另一个坐标生成一个坐标,该坐标在输入坐标的 x 英里(或最方便的单位)半径内。

举个例子:

我的地理坐标(纬度、经度)为 39.083056, -94.820200。 我想返回另一组位于 x 内的坐标 该坐标的英里半径,例如 39.110998, -94.799668。 x 英里半径不如返回的事实重要 坐标在 x 英里半径内。

我一直在搜索,但我一定是在搜索错误的东西,因为我能够找到的所有帖子看起来都非常接近我想要做的事情,但并没有完全准确头。

【问题讨论】:

是的,向我们展示您当前的代码是什么样的,然后我们可能会为您提供帮助。 如果您已经搜索并搜索,通常最好列出您找到的内容以及为什么它不符合您的需求。您可以在这里轻松修改答案:***.com/questions/639695/… 我的坏人。当我在这里提出这个问题时,我已经筋疲力尽了。我度过了漫长的一天,只想睡觉:P 下次我提出问题时,我一定会发布我尝试过的内容! 【参考方案1】:

很抱歉,您被否决而被遗忘。我知道在不知道具体要搜索什么的情况下尝试搜索可能会令人沮丧。

您可能对正交线/距离感兴趣:wiki。如果这个答案不能满足你的需求,至少你有一个新的谷歌术语,希望能引导你找到一个适合的。

您可以尝试使用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 计算,所以你应该没问题。

祝你好运!

【讨论】:

NPras,感谢您的意见。这最终对我有用。展望未来,我一定会发布我尝试过的内容。 是的,有一大堆公然懒惰的人来这里要求其他人做功课。这似乎不是其中之一,实际上是一个有趣的问题,我曾问过自己,但从未费心去看。我说这是我们俩的胜利! 我承认,我正在学习高级 C# ASP.NET 课程,但它本质上只是高级课程。我们现在正在处理表单提交和验证。很久以前我自学的东西!再次感谢您的帮助!这篇文章是关于我捡回来的一个不同的副项目,但我会注意我未来的发布方式!

以上是关于输入地理坐标,返回输入坐标 x 英里内的坐标 - C# .NET的主要内容,如果未能解决你的问题,请参考以下文章

找到某个坐标在某个周长内的最快方法是啥?

将地理边界框扩展 x 英里的计算

MySQL选择范围内的坐标

加速处理 500 万行坐标数据

SQL Server 空间特征:.STDistance 它返回英里还是米?

mySQL 在 y 范围内选择 x 公里/英里内的邮政编码