将像素转换为LatLng坐标

时间:2013-10-25 01:51:28

标签: google-maps formula pixels data-conversion degrees

Hello Programming World,

我正在使用Google Maps API v3,我有一个地图叠加层,我需要特定的坐标。

在图像中,我设法将左上角和右下角的两个像素坐标集手动转换为纬度和经度坐标。我发现了这些平等:

左上角:
1px [x轴], 1px [y轴]),以像素为单位...
纬度/经度<(strong> -109.05005006119609° [经度], 41.00062580014626° [纬度])

右下角:
575px [x轴], 423px [y轴]),以像素为单位...
纬度/经度<(strong> -102.0423399657011° [经度], 36.99314427042206° [纬度])

然而,我的老板后来决定让谷歌地图用Google的折线绘图类绘制它(所以我需要在纬度/经度坐标的覆盖层中绘制的每个边界角度)。

我的问题是,鉴于这两组坐标,我可以使用某种方程式或公式,以便找到像素坐标(我已在图像映射文件中找到)并将其转换为纬度/经度坐标。

示例:132px x轴和10px y轴的关注点= a°经度和b°纬度 找一个和b。

我很感激帮助, Llewgnolm

1 个答案:

答案 0 :(得分:2)

我跟我的一个朋友谈过,他回答了我的问题,所以我想我会把结果公布给任何想知道的人。

我们所做的是建立一个线性方程组:
Lat / Lng =乘数*像素+常数(L = m * p + c)

我们将我手动找到的数字代入系统的两个方程式,即(对于经度):
-109.05 ... = m *(1)+ c和
-102.04 ... = m * 575 + c并解决了m和c


最终,数字出现(经度):
m = 0.01220895749767
c = -109.06228374530811

然后,我们可以使用m和c的值来插入此等式中的任何像素值并找到纬度/经度,即(从上面列出的示例数字,经度):
L = 0.01220895749767(132) - 109.06228374530811
L(x方向经度为132px)= -107.45070135561566°

这可以找到基于图像像素的度数值,直到小数点后十四位(绰绰有余)。对于纬度,我只是制作了一个不同的方程组,里面有基于纬度的数字,以找到不同的m和c值。希望这有助于任何遇到类似问题的人。