2013-05-24 2 views
4

Как я могу рассчитать высоту (высоту от уровня моря) центра моего вида карты (который не является текущим местоположением пользователя), в метрах?MKMapView, как рассчитать высоту в метрах?

Мы можем видеть эту индикацию, например на Google Earth:

Google Earth image

+0

Вы пытаетесь получить высоту земли, которая находится в центре вашего просмотра карты, или что кто-то будет плавать над вашей картой, чтобы увидеть тот же вид, что и ваш вид карты? – Craig

ответ

1

CLLocation приходит с высоты текущего loction

+1

Спасибо, но мне не нужна текущая высота местоположения пользователя. Мне нужна высота, соответствующая текущему уровню масштабирования карты. – BoloG

2

Насколько я знаю, компания Apple не предоставляет API для определения высота координаты. Google имеет API высот, который можно использовать для этого. Вы можете получить доступ к нему через интерфейс HTTP и получить высоту местоположения как ответ JSON.

Issue следующий запрос, чтобы получить повышение 39.7391536, -104,9847034:

http://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&sensor=false 

Тогда вы получите ответ JSON, как этот

{ 
    "results" : [ 
     { 
     "elevation" : 1608.637939453125, 
     "location" : { 
      "lat" : 39.73915360, 
      "lng" : -104.98470340 
     }, 
     "resolution" : 4.771975994110107 
     } 
    ], 
    "status" : "OK" 
} 

Полный Elevation API документирован здесь https://developers.google.com/maps/documentation/elevation/

3

Что относительно

mapView.camera.altitude 

@property (nonatomic) CLLocationDistance высота

Высота над уровнем моря, измеренная в метрах.

Наличие IOS (7.0 и более поздних версий)

Заявленные В MKMapCamera.h Reference MKMapCamera Class Reference