google-maps – 将像素转换为LatLng坐标

你好编程世界,

我正在使用谷歌地图API v3,我有一个地图覆盖,我需要特定的坐标.

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

左上方:
(1px [x轴],1px [y轴])以像素为单位等于……
纬度/经度(-109.05005006119609°[经度],41.00062580014626°[纬度])

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

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

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

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

我很感激帮助,
Llewgnolm

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

我们所做的是创建一个线性方程组:

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值.希望这可以帮助任何遇到类似问题的人.

点赞