将像素转换为LatLng坐标

Lle*_*olm 5 google-maps formula data-conversion pixels degrees

您好编程世界,

我正在使用Google Maps API v3,并且有一个地图叠加层,需要从中获取特定坐标。

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

左上角:
(1像素 [x轴],1像素 [y轴])以像素等于...
(- 109.05005006119609° [经度], 41.00062580014626° [纬度])以纬度/经度表示

右下角
575px [x轴], 423px [y轴])以像素等于...
(- 102.0423399657011° [经度], 36.99314427042206° [纬度])以纬度/经度

但是,我的老板后来决定,他宁愿让Google Maps用Google的折线图类来绘制它(因此我需要在纬度/经度坐标中绘制在叠加层中的每个边界角)。

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

示例:在132px x轴和10px y轴上的兴趣点= a°经度和b°纬度找到a和b。

感谢您的帮助,Llewgnolm

小智 3

我和我的一个朋友交谈,他回答了我的问题,所以我想我应该将结果发布在这里,供任何想知道的人使用。

\n我们所做的是创建一个线性方程组:
\n Lat/Lng = Multiplier*Pixels+Constant (L=m*p+c)

\n我们将我手动找到的数字替换为该系统的两个方程,即 (经度):
\n -109.05...=m*(1)+c 和
\n-102.04...=m*575+c 并求解 m 和 c


\n最终,数字为 (经度):
\n m = 0.01220895749767
\n c = -109.06228374530811

\n然后我们可以使用 m 和 c 的值将任何像素值插入到该方程中并找到纬度/经度,即(来自上面列出的示例数字)再次,对于经度):
\n L = 0.01220895749767(132) - 109.06228374530811
\n L(x 方向 132px 处的经度)= -107.45070135561566\xc2\xb0

\n这会根据图像像素找到度值小数点后第 14 位(绰绰有余)。对于纬度,我只是制作了一个不同的方程组,其中包含基于纬度的数字,以找到不同的 m 和 c 值。希望这对遇到类似问题的人有所帮助。

\n