2015-06-12 132 views
1

我想找出一種方法爲我的標記添加自定義屬性/數據。如何將自定義數據添加到標記(Google Maps API SWIFT)

我用什麼

  • Marker.Title(商店名稱)
  • Marker.Snippet(存儲對象ID)
  • Marker.Icon(Store圖標)
  • Marker.userData (用於存儲 圖像)

Additi Onal地區的信息我想存儲在信息窗口顯示

  • 描述(字符串)

  • 一個數字(INT)

如果有更有效這將是很好存儲和檢索自定義數據/屬性以顯示在infowindow上的方法。任何建議目前都很有價值。

這裏是我目前所面對的一個片段: 設置標記數據:

marker.title = object["objectTitle"] as! String 
marker.snippet = objecti.objectId 
marker.icon = UIImage(named:"markerImage") 
marker.userData = UIImage(data:imageData!) 

信息窗口:

func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! { 
    var infoWindow :CustomInfoWindow = NSBundle.mainBundle().loadNibNamed("eventInfo", owner: self, options: nil)[0] as! CustomInfoWindow 

    infoWindow.eventTitle.text = marker.title 

    infoWindow.Image.image = marker.userData as? UIImage 
    marker.userData = UIImage(data:imageData!) 
    marker.snippet = object.objectId 
    return infoWindow 
} 
+0

您也可以將數據存儲在'NSUserDefault'或只是'NSDictionary'。 – ztan

回答

6

我碰到你的問題就來了,而剛剛開始學習斯威夫特,但你認爲這樣的事情會起作用:

var myData = Dictionary<String, Any>() 
myData["image"] = UIImage(data:imageData!) 
myData["description"] = "The description" 
myData["number"] = 1 
marker.userData = myData 

這是一種存儲我最近了解到的多種數據類型的技術。

+0

如何檢索userData內的字典屬性?因爲userData沒有下標。 –

2

我創建了一個結構,它具有我需要的所有數據,並將其放入marker.userdata中,因爲它支持任何類型。

let data = structName(lat: place.lat, long: place.long) // initialize struct 
marker.userData = data 

Aceess這樣的:

let markerLat = (marker.userData as! structName).lat 
let markerLong = (marker.userData as! structName).long 
相關問題