Jac*_*123 2 javascript gps geolocation coordinates coordinate-transformation
我正在使用JQuery Framework开发Web应用程序,并在使用Geolocation确定要显示在Google Maps上的硬件站的位置。
在我们的数据库中,站点的位置以“向南/向东”格式存储。
我需要一种将南/东坐标转换为谷歌地图可以理解的纬度/经度的方法。
谁能告诉我解决这个问题的公式或最佳方法?
我已经在Southing / Easting上进行了搜索,但是什么都没有出现,更像是northing / westing等,即使这样,也没有太多信息。
编程部分我真的不需要太多帮助,只是关于如何执行这两种格式之间转换的实际概念。
谢谢!
您的问题中没有足够的信息来回答它-但您也许可以自己弄清楚这些信息。这就是我要做的。
向南和向东(以及向北和向西)只是在测量距某个“零点”的距离。如果您知道零点是多少,单位是多少,这将变得容易得多,但是如果您不知道零点,则转换并非没有可能。
例如,亚特兰大市就位于佐治亚州迪凯特以西5英里处(本例中,我假设是向西,尽管实际上西南偏西5英里)。埃默里大学(Emory University)位于迪凯特以北1.5英里,以西1.5英里(这是一个近似值,但出于我们的目的,我们假设它是正确的)。
现在让我们假设一些事情:
如果我们去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
如果您的零点和度量单位没有丢失到历史记录中,那么您将有一个重要的开端。如果有的话,您可以使用此技术来推断它们-但您可能必须使用多种相关性对其进行微调,直到您拥有感觉可靠的值为止。