перевести координаты геолокации - PullRequest
0 голосов
/ 20 марта 2011

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

51,876324 карты на 659,33 на моей карте 0.943395 соответствует 2585.17 на моей карте. Другие примеры:

51,875737 - 505,77 0,943564 - 2055,39

51,875883 - 1090,58 0,944658 - 1935,42

Мои математические навыки / знания отчасти заржавели, но я должен использовать замену, чтобы узнать, каков коэффициент, с помощью которого координаты могут быть сопоставлены с моими?

Любые советы приветствуются Ура!

1 Ответ

2 голосов
/ 20 марта 2011

Невозможно точно ответить на этот вопрос, не зная деталей об используемом алгоритме проекции карты. В то время как lat и lon являются угловыми координатами на земном (почти) эллипсоиде, другие, похоже, являются координатами карты (x, y).

Если ваша карта покрывает только небольшую часть поверхности, вы можете аппроксимировать это простым преобразованием

x = lon * factor_x + offset_x
y = lat * factor_y + offset_y

с константами factor_x, factor_y и offset_x и offset_y. Из двух разных точек на вашей карте вы можете получить эти константы инверсией:

factor_x = (x1-x2) / (lon1-lon2) 
offset_x = x1 - lon1 * factor_x

и то же самое для y.

...