GMSMarker не отображается во время выполнения при нажатии кнопки

#ios #objective-c #google-maps-api-3

#iOS #objective-c #google-maps-api-3

Вопрос:

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

Нажатие кнопки (не показывает производителя на карте)

 -(IBAction)addingMarkerOnMap:(id)sender
{
  dispatch_async(dispatch_get_main_queue(), ^{
    CLLocationCoordinate2D position = CLLocationCoordinate2DMake(51.5, -0.127);
    GMSMarker *london = [GMSMarker markerWithPosition:position];
    london.title = @"London";
    london.icon = [UIImage imageNamed:@"pinIcon"];
    london.map = self.mapView;
 });
}
  

Добавление времени (отображение маркера)

 GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:self.currentLocation.coordinate.latitude
                                                        longitude:self.currentLocation.coordinate.longitude
                                                             zoom:16];

self.mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera];
self.mapView.myLocationEnabled = YES;
[self.mapView setDelegate:self];
self.mapView.mapType = kGMSTypeSatellite;    
[self.googleMapView addSubview:self.mapView];

self.marker = [[GMSMarker alloc] init];
self.marker.position = CLLocationCoordinate2DMake(43.649580, -79.385440);
self.marker.title = @"Toronto";
self.marker.snippet = @"Canada";
self.marker.map = self.mapView;
  

Комментарии:

1. Что такое googleMapView? И почему вы добавляете к нему просмотр карты Google?

2. Вложенный просмотр в ViewController.

3. похоже, то же, что и self.view

4. только в viewdidload вы можете добавить маркер Лондона, но по умолчанию он должен быть скрыт при нажатии кнопки, маркер должен быть скрыт, не пытайтесь использовать этот способ

5. проблема в том, что маркеры после нажатия кнопки не отображаются

Ответ №1:

Пожалуйста, используйте этот код в демонстрационном проекте, а затем проверьте в своем собственном проекте

 @IBOutlet var mapView: GMSMapView!
//use the following code in you button action
let state_marker = GMSMarker()
    let long = //Double long
    let lat = //Double lat
    state_marker.position = CLLocationCoordinate2D(latitude: lat!, longitude: long!)
    state_marker.map = mapView
     // add in subview if you want to add, or place a view on story board and assign GMSMapView to this
  

Комментарии:

1. попробуйте это в swift для демонстрации, возможно, у вас проблема в вашем коде, я не силен в Objective-C