2013-10-25 3 views
4

Hello World Programming,Преобразования Пиксели в LatLng Координаты

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

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

Top Left:
(1px [ось х], 1px [ось у]) в пикселях равна ...
(- +109,05005006119609 ° [Долгота], 41,00062580014626 ° [Широта]) в широте/долготе

Внизу справа:
(575px [ось х], 423px [ось у]) в пикселях равна ...
(-102,0423399657011 ° [Долгота], +36,99314427042206 ° [Широта]) в широта/долгота

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

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

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

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

ответ

2

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

То, что мы делали, было создать систему линейных уравнений:
LAT/LNG = мультипликатор * Пиксели + Constant (L = т * р + с)

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


В конце концов, цифры вышли (для долготы):
м = 0,01220895749767
с = -109,06228374530811

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

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

Смежные вопросы