从以毫米为单位的距离计算坐标

Calculate coordinates from a distance in mm

我正在编写一个软件,负责记录某些机器部件的位置。

现在是这样的:

我已经拥有的:

一个计算手臂外侧位置的软件(这很有魅力)。这会生成一个 shapefile 作为日志文件,其中手臂的位置是可见的,这适用于每个标题。

问题是:

该算法使用以毫米为单位的 delta X 和 delta Y 距离计算手臂的位置。 我的假设是经度 0.00000001 等于 X 轴上的 1.1 毫米 (source)。男孩,我错了什么...

当使用 shapefile 查看器测量生成的 shapefile 时,它​​返回 2,19 米而不是计算的 3,25。请注意,这是在纬度 52.810146939(北半球)上。

因此问题:

有没有人知道如何形成一个以纬度或经度为起点和以 [mm] 为单位的距离然后返回校正后的纬度或经度的公式?或者我如何计算相对增量坐标值以将它们与原始坐标相加?

我有一段代码:

Armlocations->leftarm.locationX = ownLocation.locationX + MM_TO_COOR(deltaX);
Armlocations->leftarm.locationY = ownLocation.locationY + MM_TO_COOR(deltaY);

deltaX 和 deltaY 是以毫米为单位的距离,应该添加到坐标中。宏MM_TO_COOR是这样的:

#define COOR_TO_MM(x)   ((x) * 110000000)
#define MM_TO_COOR(x)   ((x) / 110000000)

问题不是关于编程 -> 我明白了,而是更多关于与此相关的数学。

我确定这不是正确的地方,它可能更适合使用 https://gis.stackexchange.com

关于纬度,它总是(大约)每度111公里,所以.00000001°(1E-8°)在y方向上确实应该是1.1毫米。

经度的关系确实取决于您当前的纬度:在这里,每度的系数是 111 公里乘以 cos(纬度)。在您的情况下,这将(在球形地球上)产生 0.60445804192912 的系数,导致每度 67.1 公里或每 1E-8° 0.671 毫米。在我们的耳朵上,在两极被压平了,这个值略有不同,但应该是差不多的(但是我不知道误差有多大。)

你确定你的GPS设备有这么高的几毫米的分辨率吗?