2013-06-16 4 views
0

Я делаю приложение iPhone, в котором я использую UIMapKit. У меня есть статический указатель (стрелка) в середине экрана iPhone, а за этим указателем я использую карты iOS, в которых включено взаимодействие с пользователем, означает, что пользователь может перемещать карту, может увеличивать или уменьшать масштаб карты.Получение координаты средней точки карты - iPhone sdk

Моя задача состоит в том, чтобы получить широту и долготу того места, которое подпадает под мой экран Pointer (Стрелка)

Может кто-нибудь помочь мне, как я могу сделать этого добиться. У меня есть очень хорошая команда на UIMap я просто нужна идея

+0

Возможно, вы хотели, чтобы аннотация на карте была посередине? – icodebuster

+0

Пробовал ли вы просить карту для своего центра? – Wain

+0

что я хочу, всякий раз, когда я перемещаю свою карту, я получаю координаты ее центральной позиции. например, rite теперь NewYork находится в центре моей карты. Я перемещаю свою карту, и она останавливается, и теперь Токио находится в центре позиции карты. Я хочу получить координаты tokyo. –

ответ

1

Необходимая функциональность встроена в MapView.

CLLocationCoordinate2D pinCoordinate = [self.pickupLocationView convertPoint:CGPointMake(self.pickupLocationView.frame.size.width/2, self.pickupLocationView.frame.size.height) toCoordinateFromView:self.view]; 

Это UIKit по просьбе плаката. Я считаю, что решение Акаша будет работать, если речь идет о карте Google.

+0

Вкл. Вы можете, как и предполагалось, использовать «centerCoordinate», если вы не хотите смещать стрелку. Мы обнаружили, что он выглядел лучше, слегка смещен, так что здесь он разбит. – tooluser

+0

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

+0

Вы очень желанны! – tooluser

3

Вы можете получить среднюю точку экрана с помощью:

CGPoint screenCenterPoint = self.view.center; 

, а затем преобразовать его в координаты с помощью:

CLLocationCoordinate2D mapCenterPoint = [self.view convertPoint:screenCenterPoint toCoordinateFromView:self.view]; 

Если вы используете Карты Google затем вы также можете использовать:

CLLocationCoordinate2D mapCenterPoint = [self.mapView.projection coordinateForPoint: screenCenterPoint]; 

Чтобы узнать больше, просмотрите GMSProjection и GMSMapView.

+0

Спасибо Akash за ваш ответ. –

+1

@MuhammadSaqib Извините, я не смотрел, что вы не используете карты Google. Отредактировал мой ответ, чтобы другие могли получить выгоду. – Geek

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