我更新了我的应用以使用适用于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]
从地图中移除所有标记和折线,有没有办法只删除所有折线而不删除标记?
答案 0 :(得分:5)
超级怪异的是他们没有在文档中提到它。在源代码中,他们提到他们将在未来的版本中将其删除:
注意:在适用于iOS的Google Maps SDK 1.2中,不推荐使用这些方法。它们可能不会出现在SDK的更高版本中。我们建议您保留自己对已添加到GMSMapView的叠加层的引用,而不是使用这些方法。
似乎他们正在将责任转移给我们作为开发人员保留对添加的叠加层的引用。我在我的应用中通过创建NSMutableArray
addedMarkers来实现这一点。每次我向地图添加标记时,它都会添加到数组中。
我假设你可以对折线和地面叠加做同样的事情。每个都是他们自己的类,所以如果你需要的话,将它们分组并在以后识别它们并不困难。