2016-11-17 94 views

回答

0

好吧,我想到了這一點,如果它對任何人都有幫助。不知道這是否是這樣做的最佳方式,但它有效。

1)予延長GMSGroundOverlay類在地圖的主.swift文件

extension GMSGroundOverlay { 
 
    private struct customData { 
 
     static var userData:Any? = nil 
 
    } 
 
    var userData:Any? { 
 
     get { 
 
      return customData.userData 
 
     } 
 
     set { 
 
      customData.userData = newValue 
 
     } 
 
    } 
 
}

2.)我通過在重疊的數據被添加之前疊加到地圖

let overlayData:[String:Any] = ["id":id,"html":html,"picture":picture,"photos":photos] 
 
overlay.userData = overlayData

3)我接收到的數據被點擊時覆蓋

func mapView(_ mapView: GMSMapView, didTapOverlay overlay: GMSGroundOverlay) -> Bool { 
 
     print("# You tapped overlay with data: ") 
 
     for (key,value) in overlay.userData as! [String:Any] { 
 
      print("# \(key) = \(value)") 
 
     } 
 
     return false 
 
    }

相關問題