如何在iOS谷歌地图中显示所有信息窗口而无需点击标记?

时间:2014-05-23 03:58:28

标签: ios google-maps google-maps-markers infowindow google-maps-sdk-ios

我正在尝试创建没有点击的标记。但我不能显示所有infoWindows。它只在最后一个标记上显示一个infowindow。

这是我的代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    NSMutableArray *markersArray = [[NSMutableArray alloc] init];
    for(int i=0; i<10; i++){
        GMSMarker *marker = [[GMSMarker alloc] init];
        marker.position = CLLocationCoordinate2DMake(latitude, longitude);
        marker.appearAnimation=YES;
        marker.opacity = 0.0;
        mapView.selectedMarker = marker;
        marker.map = mapView;
        [markersArray addObject:marker];
    }
}

和自定义Infowindow:

- (UIView*)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker {
    CustomInforwindow *customView =  [[[NSBundle mainBundle] loadNibNamed:@"CustomInforwindow" owner:self options:nil] objectAtIndex:0];
    return customView;
}

2 个答案:

答案 0 :(得分:7)

您可以一次显示一个InfoWindow。

mapView.selectedMarker = marker; this will open the infowindow for the last marker

如果要显示多个标记,则应创建包含标记和信息窗口的标记。

希望这有帮助。

答案 1 :(得分:0)

将两个标记放在同一个位置(两者之间保持一定的间隙)并删除两者之间的相互作用。例如:

marker1.position = Locationcoorsinate2dobject;
marker2.position = Locationcoorsinate2dobject;
marker1.tappable = false; 
marker2.tappable = false; 

现在魔术将会发生:

marker2.icon = [UIImage imageNamed:@"yourinfowindow.png"];
marker2.groundanchor = CGPointMake(marker1.groundanchor.x, marker1.gorundanchor.y + 2‌​.7);

希望这有助于快乐编码:)