0

質問があります。iOSネイティブコード用にGoogleマップAPIを設定しています。

Google Maps API バージョン 1.4.3 を使用しています。

カスタム マーカー infoWindow を 1 マークで成功させました。

しかし、マルチ マークについて異なる infoWindow コンテンツを設定することはできません。

別のタイトルとスニペットをmarkerInfoWindowメソッドに渡す方法を誰かに教えてもらえますか? またはクリックしたときにマークを知る方法は?

1 つのマークとカスタムの markerInfoWindow パーツでコードを攻撃します。

- (void)viewDidLoad
{
    [super viewDidLoad];
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:25.03760471     longitude:121.5412 zoom:14];
    mapView = [GMSMapView mapWithFrame:CGRectMake(0, 0,     _mapBackgroundView.frame.size.width,_mapBackgroundView.frame.size.height) camera:camera];
    mapView.myLocationEnabled = YES;
    mapView.settings.myLocationButton = YES;
    mapView.settings.compassButton = YES;
    mapView.delegate = self;

    [self.mapBackgroundView addSubview:mapView];

    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(25.03760471, 121.5412);
    marker.map = mapView;

    GMSMarker *marker2 = [[GMSMarker alloc] init];
    marker2.position = CLLocationCoordinate2DMake(25.03760461, 121.5432);
    marker2.map = mapView;
}

-(UIView *) mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker
{
    CustomInfoWindow *infoWindow = [[[NSBundle mainBundle]loadNibNamed:@"InfoWindow"   owner:self options:nil] objectAtIndex:0];
    infoWindow.titleLb.text = @"1th marks";
    infoWindow.snippetLb.text= @"1th marks snippet~";
    return infoWindow;
}

どうもありがとうございました〜

4

1 に答える 1

0

多くの方法でそれを行うことができます...通常、カスタムクラスを作成し、そこに一意のIDを設定して、後で委任されたメソッドでマーカーを正しく識別する必要があります...しかし、これは賢明な方法です...

- (void)viewDidLoad
{
[super viewDidLoad];
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:25.03760471     longitude:121.5412 zoom:14];
    mapView = [GMSMapView mapWithFrame:CGRectMake(0, 0,     _mapBackgroundView.frame.size.width,_mapBackgroundView.frame.size.height) camera:camera];
        mapView.myLocationEnabled = YES;
        mapView.settings.myLocationButton = YES;
        mapView.settings.compassButton = YES;
        mapView.delegate = self;

        [self.mapBackgroundView addSubview:mapView];

        GMSMarker *marker = [[GMSMarker alloc] init];
        marker.position = CLLocationCoordinate2DMake(25.03760471, 121.5412);
        marker.map = mapView;
        marker.title= @"1st marker"; // set some title here

        GMSMarker *marker2 = [[GMSMarker alloc] init];
        marker2.position = CLLocationCoordinate2DMake(25.03760461, 121.5432);
        marker2.title= @"2nd marker";
        marker2.map = mapView;
}


-(UIView *) mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker
{

    CustomInfoWindow *infoWindow = [[[NSBundle mainBundle]loadNibNamed:@"InfoWindow"   owner:self options:nil] objectAtIndex:0];
    infoWindow.titleLb.text = marker.title;  // change the text according to the marker displayed here
    infoWindow.snippetLb.text= @"1th marks snippet~";


    return infoWindow;
}
于 2013-10-30T10:46:52.877 に答える