Преобразование пикселей в координаты LatLng

Привет, Мир программирования,

Я использую Google Maps API v3, и у меня есть наложение карты, из которого мне нужны конкретные координаты.

На изображении мне удалось вручную преобразовать два набора пикселей из верхнего левого и нижнего правого в координаты широты и долготы. Я нашел эти равенства:

Верхний левый:
(1px [ось x], 1px [ось y]) в пикселях равно...
(-109.05005006119609 ° [долгота], 41.00062580014626 ° [широта]) по широте / долготе

Нижний правый:
(575px [ось x], 423px [ось y]) в пикселях равно...
(-102,0423399657011 ° [долгота], 36,99314427042206 ° [широта]) по широте / долготе

Однако позже мой босс решил, что ему лучше, чтобы Карты Google рисовали это с помощью класса рисования полилиний Google (поэтому мне нужен каждый угол границы, который я нарисовал в своем наложении в координатах широта / долгота).

Мой вопрос, учитывая эти два набора координат, есть ли какое-то уравнение или формула, которую я могу использовать, чтобы найти координату пикселя (которая у меня уже есть в файле карты изображения) и преобразовать ее в широту / долготу координат.

Пример: Интересная точка на оси x 132px и оси y 10px = a° Долгота и b° Широта Найдите a и b.

Я ценю помощь, Llewgnolm

1 ответ

Я поговорил с моим другом, и он ответил на мой вопрос, поэтому я решил опубликовать результаты здесь для всех, кто хотел бы знать.

Мы создали систему линейных уравнений:
Lat / Lng = Multiplier * Pixels + Constant (L = m * p + c)

Мы подставили числа, которые я нашел, вручную в два уравнения для системы, то есть (для долготы):
-109,05...= м *(1)+ с и
-102.04...=m*575+c и решается как для m, так и для c

В конце концов, числа оказались (для долготы):
m = 0,01220895749767
с = -109,06228374530811

Затем мы можем использовать наши значения для m и c, чтобы подключить любое значение пикселя к этому уравнению и найти широту / долготу, т. Е. (Из приведенных выше номеров примеров для долготы):
L = 0,01220895749767(132) - 109,06228374530811
L (долгота при 132px в направлении x) = -107.45070135561566°

Это находит значения степени, основанные от пикселей изображения до 14-го знака после запятой (более чем достаточно). Для широты я просто создал другую систему уравнений с числами на основе широты, чтобы найти разные значения m и c. Надеюсь, это поможет всем, кто сталкивается с подобной проблемой.

Другие вопросы по тегам