Как получить центральную широту и долготу местоположения карты Google в iOS?

Я новичок в разработке iOS и новичок в наборе карт. Я хочу знать о широте и долготе центра MapView. Каждый раз, как когда пользователь прокручивает от одного места к другому, я хочу показать центральную широту и долготу моего GMSMapView, как это возможно, как как Здесь я прикрепляю изображение для этого.

Здесь мое текущее местоположение - Мумбаи. Затем отображается моя карта.

введите описание изображения здесь

и я хочу знать широту и долготу расположения центра, например, когда пользователь прокручивает карту, тогда я хочу знать широту и долготу точки индикатора моего изображения. Здесь изображение Покажи, как я хочу знать широту и долготу этой точки. Здесь мое указанное изображение находится в центральном положении моего MapView.

введите описание изображения здесь


person Ramesh    schedule 26.01.2015    source источник
comment
ты получил ответ? Решили ли вы проблему, укажите здесь ответ.   -  person Arbaz Shaikh    schedule 19.03.2016


Ответы (2)


Чтобы получить позицию всякий раз, когда карта перемещается, вам нужно обработать mapView:didChangeCameraPosition:.

Затем внутри этого метода вы можете получить доступ к mapView.camera.target, чтобы получить текущий центр карты.

- (void) mapView: (GMSMapView *)mapView 
     didChangeCameraPosition: (GMSCameraPosition *)position 
{
    double latitude = mapView.camera.target.latitude;
    double longitude = mapView.camera.target.longitude;

    // now do something with latitude and longitude
}

Обратите внимание, что для обработки метода делегата вам необходимо реализовать протокол GMSMapViewDelegate. . При настройке карты вам нужно будет установить делегата карты для класса, который обрабатывает протокол (обычно self), например:

mapView.delegate = self;
person Saxon Druce    schedule 26.01.2015
comment
Пожалуйста, не могли бы вы дать мне какие-нибудь ресурсы для этого? - person Ramesh; 26.01.2015
comment
здесь я не меняю местоположение, значит он работает? здесь я только перемещаю вид карты. тогда это сработало? - person Ramesh; 26.01.2015

Используйте приведенный ниже код для получения центра широты и долготы просмотра карты. Когда вы прокручиваете карту в любом направлении, автоматически вызывается метод regionWillChangeAnimated:. Это один из методов оптического делегата.

- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
{
     CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(mkmapView.centerCoordinate.latitude, mkmapView.centerCoordinate.longitude);
     CGFloat txtLatitude = coord.latitude;
     CGFloat txtLongitude = coord.longitude;
     NSLog(@"Latitude is===>>>%f %f",txtLongitude);
     NSLog(@"Longitude is===>>>%f %f",txtLongitude);
 }

Если вы нажмете на карту, вам потребуется, чтобы Широта и Долгота использовали приведенный ниже код. Здесь _mkMapView - выход Mapview.

- (void)viewDidLoad
{
     UITapGestureRecognizer *tapGesture= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(backgroundTapped:)];
     [self.view addGestureRecognizer:tapGesture];
}

- (void)backgroundTapped:(UITapGestureRecognizer *)gesture
{
    CGPoint touchPoint = [gesture locationInView:_mkMapView];
    CLLocationCoordinate2D location =[_mkMapView convertPoint:touchPoint toCoordinateFromView:_mkMapView];
}

может быть это будет полезно для вас.

person gireesh Chanti    schedule 23.03.2016