输入地理坐标,return 距离输入坐标 x 英里以内的坐标 - C# .NET
Input a geographic coordinate, return a coordinate within x miles of that inputted coordinate - C# .NET
如标题所示,我正在尝试根据输入坐标的 x 英里(或最方便的单位)半径内的另一个坐标生成坐标。
举个例子:
- 我的地理坐标(纬度、经度)为 39.083056,-94.820200。
- 我想返回 x 内的另一组坐标
该坐标的英里半径,例如 39.110998、-94.799668.
- x 英里半径不如返回的事实重要
坐标在该 x 英里半径内。
我搜索了又搜索,但我一定是在搜索错误的东西,因为我能找到的所有帖子看起来都非常接近我想做的事情,但并没有完全达到目标钉在头上。
很抱歉你被否决了。我知道在不知道确切要搜索什么的情况下尝试搜索某些内容可能会令人沮丧。
您可能对顺向Lines/Distances感兴趣:wiki。如果这个答案不能满足您的需求,至少您有一个新术语 google 并且希望能引导您找到适合您的术语。
您可以尝试使用 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
计算,所以你应该没问题。
祝你好运!
如标题所示,我正在尝试根据输入坐标的 x 英里(或最方便的单位)半径内的另一个坐标生成坐标。
举个例子:
- 我的地理坐标(纬度、经度)为 39.083056,-94.820200。
- 我想返回 x 内的另一组坐标 该坐标的英里半径,例如 39.110998、-94.799668.
- x 英里半径不如返回的事实重要 坐标在该 x 英里半径内。
我搜索了又搜索,但我一定是在搜索错误的东西,因为我能找到的所有帖子看起来都非常接近我想做的事情,但并没有完全达到目标钉在头上。
很抱歉你被否决了。我知道在不知道确切要搜索什么的情况下尝试搜索某些内容可能会令人沮丧。
您可能对顺向Lines/Distances感兴趣:wiki。如果这个答案不能满足您的需求,至少您有一个新术语 google 并且希望能引导您找到适合您的术语。
您可以尝试使用 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
计算,所以你应该没问题。
祝你好运!