在Google Maps SDK iOS中,将一个标记设置为其他所有标记的标记。

13

我试图放置一个标记,但是当我这样做时,这个标记被放置在之前设置的某些标记后面(并且也在一些其他标记之上)。我想将它设置在所有标记的上方,但我没有找到任何属性(比如z-index)来实现这一点。

这是我设置那个位于其他标记后面的标记的代码部分:

GMSMarker *marker = [[GMSMarker alloc] init];
marker.animated=YES;
marker.position = CLLocationCoordinate2DMake(lat, lon);
marker.map = mapView_;

这是结果:

绿色标记位于一些蓝色标记后面,并覆盖其他蓝色标记

有没有属性或方法可以将绿色标记放在所有蓝色标记上方?我正在使用Google Maps SDK版本1.3.0。

1个回答

53

从版本1.4.0开始,GMSOverlay类中添加了一个zIndex属性,支持此功能。根据发布说明

在所有叠加层上添加了zIndex属性。 Z-Indexes计算为两组:GMSMarker和所有其他叠加层。

只需在标记上设置较高的zIndex,即可使其绘制在所有其他标记之上。根据属性文档所述:

具有较高zIndex值的叠加层将绘制在具有较低zIndex值的瓷砖图层和叠加层之上。

标记的默认zIndex0(至少在当前SDK版本中是这样 - 尽管我没有看到它被记录下来,但很容易测试和确认),因此如果您没有为大多数标记设置zIndex,并且有一个您想要置于所有其他标记之上的标记,则只需执行以下操作:

yourGmsMarker.zIndex = 1;

1
如果您想将标记放在另一个标记之上,请将前一个zIndex设置为低于1(例如0.8),然后将其设置为1.0。 - Jeff Bootsholz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接