Расчет относительных координат на пользовательской карте - PullRequest
0 голосов
/ 22 марта 2012

В настоящее время я работаю над картографическим приложением для iPhone. Я создал несколько пользовательских карт разных размеров, но столкнулся с проблемой:

Я хотел бы реализовать возможность автоматической проверки местоположений пользователей, но, поскольку я не использую MapView, это намного сложнее. (см. ниже)

map

учитывая различные системы координат, я хотел бы получить геолокацию (зеленая точка) и перевести ее в пиксельное местоположение на пользовательской карте. У меня есть геолокации для 4 углов, но прямоугольник искажен. Я вычислил угол поворота, но я просто сбит с толку.

примечание: размер карт недостаточно велик для того, чтобы сферическая природа Земли пришла в расчет.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 02 апреля 2012

Чтобы преобразовать геолокацию в точку, вам нужно сначала понять отображение.при условии, что вы используете Mercator.

x = R*long
y = R*(1+sin(lat))/cos(lat)

где lat и long в радианах. R - радиус Земли.масштаб изображения будет от 0 to R*PI

, поэтому, чтобы получить его в пределах view.frame.size, вам, возможно, придется разделить его на коэффициент масштабирования.

для разницы между точками.

x2-x1 = R* (long2-long1)
y2-y1 = R* (  (1+sin(lat2))/cos(lat2) - (1+sin(lat1))/cos(lat1)  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...