Как получить метров в пикселе в MapKit?

голоса
1

Я хотел проверить MapKit и хотел сделать свою собственную накладку, чтобы отобразить точность моей позиции. Если у меня есть коэффициент масштабирования, например, .005 радиус которого делает мой круг вокруг меня должен иметь (если моя точность, например, 500)?

Было бы здорово, чтобы получить некоторую помощь :)

Большое спасибо.

Задан 27/12/2009 в 12:58
источник пользователем
На других языках...                            


3 ответов

голоса
1

Чтобы добавить другой ответ, разница в одну минуту широты соответствует одной морской мили: это, как было определено морская миля. Таким образом, преобразование в уставные миль, 1 морская миля = 1.1508 статуя миль, или 6076.1 футов. Или 1852 метров.

Когда вы идете по долготе, размер долготы кругов вокруг Земли уменьшаться по мере увеличения широты, как было отмечено в предыдущем ответе. Правильный фактором является то,

1 minute of longitude = (1852 meters)*cos(theta),

где тета является широта.

Конечно, Земля не является идеальной сферой, но простой расчет выше никогда не будет выключено более чем на 1%.

Ответил 28/12/2009 в 22:39
источник пользователем

голоса
1

Посмотрите на документацию для MKCoordinateSpan, которая является частью карты в regionсобственности. Один градус широты всегда ок. 111 км, таким образом преобразуя latitudeDeltaв метры , а затем добраться до метров на пиксель должен быть легким. Для продольных значений это не совсем так просто , как расстояние , пройденное на один градус долготы колеблется в пределах 111 км (на экваторе) и 0 км (на полюсах).

Ответил 27/12/2009 в 14:01
источник пользователем

голоса
0

Мой способ получить метр на пиксель:

MKMapView *mapView = ...;
CLLocationCoordinate2D coordinate = ...;

MKMapRect mapRect = mapView.visibleMapRect;
CLLocationDistance metersPerMapPoint = MKMetersPerMapPointAtLatitude(coordinate.latitude);

CGFloat metersPerPixel = metersPerMapPoint * mapRect.size.width / mapView.bounds.size.width;
Ответил 19/03/2015 в 00:16
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more