Преобразование пикселей в координаты 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. Надеюсь, это поможет всем, кто сталкивается с подобной проблемой.