在两个已知点之间每 1 米获取所有顶点(lat,long)点?

Getting all vertex (lat, long) points every 1 meter between two known points?

我目前正在使用 C# 尝试编写代码,以十进制值形式获取起点和终点的纬度和经度坐标对,并显示这两点(起点和终点)之间的 GPS 点(纬度和经度)点)在我的数据库中。

例如:

我的起始坐标为纬度 39.90732 和经度 116.45353,终点坐标为纬度 39.90736 和经度 116.44927。在datagridview或listview上查询并显示我数据库中这两点之间的GPS点(纬度和经度值)。

还计算每 1 米间隔的 GPS 点数。

1. image description for first part

2. image description for second part

所以您的数据库中有一组坐标并且想要获取位于某条线上的坐标?

对于你的第一个问题:为了在数学上正确,你必须得到该直线的方程 f(x)= k * x + d 并检查你的点,它们是否是该方程的有效解。您可以跳过确定位于起点 (s_x, s_y) 和终点 (e_x, e_y) 所跨越的矩形之外的检查点。也就是说,您只需要检查点 (x, y),其中 xs_xe_x 之间,ys_ye_y 之间.

对于你的第二个问题:如果你有一组从问题 1 导出的有效点,计算每个点到起点的距离然后按距离对它们分组应该很容易。

所有这些假设,您知道如何将 gps 坐标转换为公制系统,并且您的距离足够短,可以忽略球形地球在平面上的投影。例如,两个经度之间的距离在赤道处最大,向两极方向变小。此外,地球上两点之间的最短距离可能不是使用墨卡托投影在平面地图上看起来的距离。