是否可以显示多个标记的多个信息窗口而不用点击它?

我想在Google地图中显示多个标记的多个信息窗口。 信息窗口应该显示而不用点击标记本身。 可能吗? 经过研究,我了解到,将标记设置为mapview选定的标记可以使信息窗口出现而不用点击它。 但是,一次不能select多个标记作为mapview的选定标记。 有什么可以做的吗?

以下是创build自定义标记的代码,如上图所示:

创buildUIView的子类,并将下面的方法添加到类中。

 -(UIImage*)createCustomMarkerImageWithMarker:(GMSMarker *)marker { CGRect priceLabelRect = [marker.title boundingRectWithSize:CGSizeMake(500, 50) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10]} context:nil]; UILabel *priceLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, priceLabelRect.size.width+25, priceLabelRect.size.height+12)]; priceLabel.text = [NSString stringWithFormat:@" ₹ %@ ",marker.title]; priceLabel.textAlignment = NSTextAlignmentCenter; priceLabel.textColor = [UIColor blackColor]; priceLabel.backgroundColor = [UIColor clearColor]; priceLabel.font = [UIFont systemFontOfSize:11]; CGRect numberOfPropertiesLabelRect = [marker.snippet boundingRectWithSize:CGSizeMake(300, 50) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10]} context:nil]; UILabel *numberOfPropertiesLabel = [[UILabel alloc]initWithFrame:CGRectMake(priceLabel.frame.size.width, 0, numberOfPropertiesLabelRect.size.width+10, numberOfPropertiesLabelRect.size.height+12)]; numberOfPropertiesLabel.text = marker.snippet; numberOfPropertiesLabel.textAlignment = NSTextAlignmentCenter; numberOfPropertiesLabel.textColor = [UIColor whiteColor]; numberOfPropertiesLabel.backgroundColor = [UIColor clearColor]; numberOfPropertiesLabel.font = [UIFont systemFontOfSize:11]; self.frame = CGRectMake(0, 0, priceLabel.frame.size.width+numberOfPropertiesLabel.frame.size.width, priceLabel.frame.size.height+TriangleHeight); [self addSubview:priceLabel]; [self addSubview:numberOfPropertiesLabel]; UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [[UIScreen mainScreen] scale]); [self.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage * icon = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return icon; } 

在上面的代码中,创build了两个标签priceLabelnumberOfPropertiesLabel 。 两个标签的框架都根据您的要求设置,即标签在视图中的位置。 然后根据标签的尺寸设置视图的框架。

视图然后转换成图像。 然后将该图像设置为GMSMarker图像。

一次不能select多个标记。

您可以使用替代方法。

您可以创build自定义标记,即可以创build自定义标记图像,使其包含要在信息窗口中显示的信息/格式。

下面的图片可以给你一个如何实现它的想法:

在这里输入图像说明