【问题标题】:GMSMapView methods deprecated in version 1.61.6 版中弃用的 GMSMapView 方法
【发布时间】:2013-11-25 02:03:01
【问题描述】:

我更新了我的应用程序以使用 iOS 版 Google Maps API 1.6 版。现在它告诉我GMSMapView 的三个重要方法已被弃用:

'markers' is deprecated
'polylines' is deprecated
'groundOverlays' is deprecated

起初我认为这可能是我这边的问题,因为在 Google 的文档中没有提到这一点,但后来我看到头文件并注意到它们实际上已被弃用,但它们没有指定替代方法使用为了达到同样的目的:

- (NSArray *)markers __GMS_AVAILABLE_BUT_DEPRECATED;
- (NSArray *)groundOverlays __GMS_AVAILABLE_BUT_DEPRECATED;
- (NSArray *)polylines __GMS_AVAILABLE_BUT_DEPRECATED;

有人可以告诉我如何在不使用过时方法的情况下做到这一点吗?谢谢!

编辑:我刚刚找到了一种方法,您可以使用[mapView clear] 从地图中删除所有标记和折线,有没有办法只删除所有折线而不删除标记?

【问题讨论】:

    标签: ios google-maps ios7 google-maps-sdk-ios


    【解决方案1】:

    他们没有在文档中提到它真是太奇怪了。在源代码中,他们提到他们将在未来的版本中删除它:

    注意:在 iOS 版 Google Maps SDK 1.2 中,这些方法已被弃用。它们可能不会出现在 SDK 的更高版本中。我们建议您保留自己对已添加到 GMSMapView 的叠加层的引用,而不是使用这些方法。

    似乎他们将责任转移到我们作为开发人员的身上,以保持对添加的叠加层的引用。我在我的应用程序中通过创建添加标记的NSMutableArray 来做到这一点。每次我向地图添加标记时,它都会添加到数组中。

    我假设您可以对折线和地面叠加层做同样的事情。每一个都是他们自己的类,所以如果需要的话,将它们分组并在以后识别它们应该不难。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      相关资源
      最近更新 更多