2013-11-25 64 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。每次我向地圖添加標記時,它都會添加到數組中。

我假設你可以用折線和地面疊加來做同樣的事情。每個人都是他們自己的班級,因此,如果需要,不應該很難將他們分組,並在以後識別他們。

相關問題