将向南/向东GPS坐标转换为纬度/经度

Jac*_*123 2 javascript gps geolocation coordinates coordinate-transformation

我正在使用JQuery Framework开发Web应用程序,并在使用Geolocation确定要显示在Google Maps上的硬件站的位置。

在我们的数据库中,站点的位置以“向南/向东”格式存储。

我需要一种将南/东坐标转换为谷歌地图可以理解的纬度/经度的方法。

谁能告诉我解决这个问题的公式或最佳方法?

我已经在Southing / Easting上进行了搜索,但是什么都没有出现,更像是northing / westing等,即使这样,也没有太多信息。

编程部分我真的不需要太多帮助,只是关于如何执行这两种格式之间转换的实际概念。

谢谢!

Joe*_*ose 5

您的问题中没有足够的信息来回答它-但您也许可以自己弄清楚这些信息。这就是我要做的。

向南和向东(以及向北和向西)只是在测量距某个“零点”的距离。如果您知道零点是多少,单位是多少,这将变得容易得多,但是如果您不知道零点,则转换并非没有可能。

例如,亚特兰大市就位于佐治亚州迪凯特以西5英里处(本例中,我假设是向西,尽管实际上西南偏西5英里)。埃默里大学(Emory University)位于迪凯特以北1.5英里,以西1.5英里(这是一个近似值,但出于我们的目的,我们假设它是正确的)。

现在让我们假设一些事情:

  1. 我们被告知亚特兰大位于北0和西8800。
  2. 我们被告知埃默里大学位于北2640和西2640。
  3. 没有人记得Decatur是网格的起源。
  4. 没有人记得距离代表的单位(顺便说一下,是码)。

如果我们去Google Maps并在亚特兰大的零英里路标上放一个纬度标记(可能必须在Google Maps实验室中启用),我们发现它位于33.75116,-84.38740。

如果我们对埃默里大学做同样的事情,我们会发现它位于33.7909,-84.3248。

然后,我们可以进行以下数学运算来找到经度与未知西点单位的比率:

abs(-84.38740--84.3248)=(abs(8000-2640))* x
0.0626 = 5360 *
xx = 0.0626 / 5360
x = 0.000011679

然后从那里我们可以找到我们理论上未知的零点的经度,方法是将亚特兰大的西点值乘以该因子,然后将其相加(因为亚特兰大在本初子午线以西,因此具有负经度数)到亚特兰大的已知经度:

零经度= -84.38740 +(8000 * 0.000011679)
零经度= -84.293968

将相同的逻辑应用于纬度,我们可以基于未知的北向单位找到一个因子:

abs(33.75116-33.7909)=(abs(
2640-0 ))* y 0.03974 = 2640 * y
y = 0.03974 / 2640
y = 0.000015053

而且我们以相同的方式找到零纬度点(在此示例中很明显,因为亚特兰大位于北0处,但是无论如何都要进行运动):

零纬度= 33.75116 +(0 * 0.000015053)
零纬度= 33.75116

因此我们计算出的零点是33.75116,-84.293968。Google地图确认该纬度落在与已知点有关的预期范围内。

因此,通过使用此得出的零点和得出的比率,我可以找到其他的北点和西点。例如,如果有人告诉我们东西在北3000西500上,那么我们将得出其经纬度,如下所示:

纬度= 33.75116 +(3000 * 0.000015053)
(添加是因为我们向北移动)
纬度= 33.796319

经度= -84.293968-(500 * 0.000011679)
(减去是因为我们向西移动)
经度= -84.2998075

因此,北3000西500 = 33.796319,-84.2998075

如果您的零点和度量单位没有丢失到历史记录中,那么您将有一个重要的开端。如果有的话,您可以使用此技术来推断它们-但您可能必须使用多种相关性对其进行微调,直到您拥有感觉可靠的值为止。