2013-11-25 46 views
7

我更新了我的应用程序以使用适用于iOS的Google Maps API 1.6版。现在让我发现的GMSMapView三个重要的方法现在已经过时:版本1.6中不推荐使用GMSMapView方法

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

起初我以为这是因为谷歌的文档中没有提到这可能是在我身边的一个问题,但后来我看到了头文件并发现他们其实都是过时,但他们没有指定,以达到同样的事情用另一种方法:

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

有人能指出我如何做到这一点,而不使用过时的方法呢?谢谢!

编辑:我只是找到了一个方法,你可以做[mapView clear]这会从地图上删除所有标记和折线,有没有什么办法,只除去所有折线而不删除标记?

回答

5

超级奇怪,他们没有在文档中提到它。在源代码中,他们提到他们将在未来的版本中将其发布:

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

好像他们将责任移到我们身上,作为开发人员继续引用添加的叠加层。我在应用程序中创建了一个NSMutableArray addedMarkers。每次我向地图添加标记时,它都会添加到数组中。

我假设你可以用折线和地面叠加来做同样的事情。每个人都是他们自己的班级,因此,如果需要,不应该很难将他们分组,并在以后识别他们。

相关问题