Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从相对基准和绝对基准计算绝对位置_Java_Android_Gps_Coordinate Transformation - Fatal编程技术网

Java 从相对基准和绝对基准计算绝对位置

Java 从相对基准和绝对基准计算绝对位置,java,android,gps,coordinate-transformation,Java,Android,Gps,Coordinate Transformation,我正在开发一个生成相对位置的系统,并为其提供了一个绝对基准位置。这样,我可以计算每个相对位置对应的绝对位置 但我很难找到解决方案,也无法解决这个问题,因为它并不简单(相对坐标系基于平面坐标系,绝对坐标系是纬度和经度,十进制度数格式) 为了进一步阐述,我从(0,0)的相对位置开始,记录该位置在绝对定位中的转换,即十进制度数表示法,如Android Location API提供的。然后,我分别计算每个组件的偏移量,这将产生一个新的相对位置 有没有人在Java(或类似的)编程语言中找到了一个解决方案来

我正在开发一个生成相对位置的系统,并为其提供了一个绝对基准位置。这样,我可以计算每个相对位置对应的绝对位置

但我很难找到解决方案,也无法解决这个问题,因为它并不简单(相对坐标系基于平面坐标系,绝对坐标系是纬度和经度,十进制度数格式)

为了进一步阐述,我从(0,0)的相对位置开始,记录该位置在绝对定位中的转换,即十进制度数表示法,如Android Location API提供的。然后,我分别计算每个组件的偏移量,这将产生一个新的相对位置


有没有人在Java(或类似的)编程语言中找到了一个解决方案来计算与最后一个相对位置相对应的绝对位置(与我提到的十进制度数格式相同)?即使只是公式也行。

你知道相关位置意味着差异。
所以

使用绝对lat/lon和所有增量,接收器可以重新创建绝对lat/lon位置。(有一些陷阱,请确保编写一些单元测试!)

根据当前位置和最后一个增量,您可以轻松地以米为单位计算距离。


阿迪特。信息:你的三角洲不应该以米为单位,这是非常复杂的。两个相同的deltaLat/Lon对的米数在地球上各不相同,所以你总是需要绝对位置(至少是绝对纬度)

你的问题太模糊了?我的意思是相对坐标和绝对坐标可以定义为任何东西。你可以有两个对象,它们的相对坐标是它们彼此的X和Y偏移,它们的绝对坐标是它们相对于屏幕(0,0)的X和Y偏移,但是你的问题是什么?我的意思是:我从(0,0)开始计算连续偏移的相对位置,再加上以米为单位的偏移。我还记录了(0,0)上的绝对位置,在这里我应该添加该点和相对位置之间的偏移量(实际上,偏移量是坐标值,因为该点本身的X和Y值为0)。我将更新这个问题。现在你需要定义绝对位置坐标系。你所说的“十进制度数”是指地球表面的经度和纬度吗?就是这样!我认为这没有什么关系,但是是的:这些是GPS单位发送的坐标,以十进制度数表示。让我看看我是否做对了:从相对起始位置(0,0)和当前相对位置(比如,(5,3))的距离,我们可以反转两个拉特,长的哈弗森距离公式。点,将其中一个点替换为基点。这是总而言之吗?地球上的距离不能用相对位置来测量。你需要绝对的一。所以想想你为什么需要相对位置。你的目标是什么?最后,需要两个绝对位置来计算两者之间的距离。你可以通过一个绝对位置,并将相对的δlat,lon变化求和来达到这个目的。但最后你会得到两个相对位置。我的目标是,通过知道每个运动的方向,以及每个运动的距离,以米为单位,知道最终的目的地是什么,知道我从A点开始。恐怕没有办法使用相对位置,除了可能用纵横差测量距离。,这在我的情况下是不可能的。我无法将米的X,Y差转换为纬度/经度差。你为什么不像每个人一样计算最后两个绝对位置之间的方向和米?你可以将X,Y差转换为纬度/经度,但前提是你知道绝对位置(至少是绝对纬度)。因为赤道上两个经度之间的距离只有111.11公里。越往北,距离为80公里,在北极,距离接近0公里。
deltaLat = curLat - lastLat;
deltaLon : analog