在 Google Maps SDK iOS 中的所有其他标记上设置标记

Posted

技术标签:

【中文标题】在 Google Maps SDK iOS 中的所有其他标记上设置标记【英文标题】:Set a marker over all other markers in Google Maps SDK iOS 【发布时间】:2013-05-24 09:34:39 【问题描述】:

我正在尝试放置一个标记,但是当我这样做时,这个标记被放置在之前设置的一些标记之后(以及其他一些标记之上)。我想在所有标记上设置它,但我没有找到任何属性(如 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】:

现在通过添加到版本 1.4.0 中的 GMSOverlay 类的 zIndex 属性来支持这一点。来自release notes:

在所有叠加层上添加了zIndex 属性。 Z 索引按两组计算:GMSMarkers 和所有其他叠加层。

只需在您的标记上设置一个较高的zIndex 即可将其绘制在所有其他标记之上。如属性文档here所述:

较高的zIndex 值叠加层将绘制在较低的zIndex 值平铺层和叠加层之上。

标记的默认 zIndex0(至少在当前的 SDK 版本中 - 我还没有看到它的文档,但它很容易测试和确认),所以如果你没有设置 @ 987654332@ 对于您的大多数标记,并且有一个您想要放置在所有其他标记之上,您需要做的就是:

yourGmsMarker.zIndex = 1;

【讨论】:

如果你想把一个标记放在另一个上面,把前面的 zIndex 放在 1 以下(比如 0.8),然后是 1.0

以上是关于在 Google Maps SDK iOS 中的所有其他标记上设置标记的主要内容,如果未能解决你的问题,请参考以下文章

在 Google Maps SDK for native iOS/objective C 中的 InfoWindow/Marker 上添加 Click 事件

iOS 中使用 nativescript-google-maps-sdk 的地图中心错误

如何更新 Google Maps SDK iOS

google-maps-sdk-ios - 适用于 iOS 的 Google 地图 1.4.3 的 arm 7/iphone 5 问题

Google Maps iOS SDK - 搜索地点

IOS中带有语音导航方向的Google Maps sdk?