2

私は両方を同時に表示しようinfowindowとしています。marker

コード

-(void)set_markerOnMap:(double)lat longitude:(double)lon{

    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.title = @"Location selected";
    marker.position = CLLocationCoordinate2DMake(lat, lon);
    marker.snippet = @"Testing";
    marker.icon=[UIImage imageNamed:@"red-pin.png"];
    marker.map = self.MyMapView;

    [self.MyMapView setSelectedMarker:marker];

}

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self set_markerOnMap:21.214894 longitude:72.88087];
    self.MyMapView.delegate=self;
}

上記のコードは正常に機能しており、両方infowindowmarker一緒に表示されています。しかし、私の問題は、代わりに set_markerOnMapメソッドを呼び出したときに機能せず、表示されるだけです。didTapAtCoordinateviewDidLoadmarker

コード:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.MyMapView.delegate=self;


}

- (void) mapView:       (GMSMapView *)  mapView
didTapAtCoordinate:     (CLLocationCoordinate2D)    coordinate{

 [self set_markerOnMap:21.214894 longitude:72.88087];

}

私が間違っている場所で誰かが私を助けることができますか?

4

2 に答える 2

0

これが機能するかどうかを確認してください...

[[NSOperationQueue mainQueue] addOperationWithBlock:^{
    [self set_markerOnMap:21.214894 longitude:72.88087];
}];
于 2014-12-22T18:11:44.423 に答える
0

したがって、i2Fluffy で示唆されているように、短期的な答えは次のとおりです。

@implementation ViewController {
  GMSMarker *tapMarker;
}

- (void)viewDidLoad {
  [super viewDidLoad];

  GMSMapView *mapView = (GMSMapView*)self.view;
  mapView.delegate = self;

  CLLocationCoordinate2D sydney = CLLocationCoordinate2DMake(-33.868, 151.2086);

  mapView.camera = [GMSCameraPosition cameraWithTarget:sydney zoom:8];

  tapMarker = [GMSMarker markerWithPosition:sydney];
  tapMarker.title = @"Tap Marker";
  tapMarker.map = (GMSMapView*)self.view;
}

-(void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate {
  NSLog(@"Tap at (%g,%g)", coordinate.latitude, coordinate.longitude);
  tapMarker.position = coordinate;
  [[NSOperationQueue mainQueue] addOperationWithBlock:^{
    [((GMSMapView*)self.view) setSelectedMarker:tapMarker];
  }];
}

@end

長期的な答えは、これはバグ ( gmaps-api-issues/7222 ) であり、エンジニアリングと協力してこれを修正するというものです。

ご報告ありがとうございます!=)

于 2015-01-28T00:32:30.490 に答える