私はデフォルトの赤いGoogleマップマーカーを変更したい場所にiOSアプリケーションを構築しています。残念ながら、私はインターネット上を見渡そうとしましたが、解決策を見つけることはできません。 私の問題は、gmaps utilsでクラスタリングしているgmapsを実装していることですが、クラスPOIItemの項目のアイコンを変更する方法が見つからないようです。メーカーの外観を変更しようとすると、デフォルトとカスタムの両方のマーカーが表示されます。 FUNCのgetClubs(){誰もが、非常に私はプログラミングに非常に新しいですいただければ幸い解決策を持っており、それは私がこだわっているしばらくしている場合はGoogleマップを変更するPOIItemマーカー
ref.child("Clubs").observe(.value, with: { (snapshot) in
for child in snapshot.children{
let snap = child as! DataSnapshot
let value = snap.value as? [String: Any]
//print(value!)
let name = value?["Name"] as? String
//let latitude = value?["Latitude"] as? String
//let longitude = value?["Longitude"] as? String
let contact = value?["Contact"] as? String
let prix = value?["Prix"] as? [String:Int]
var adresse = value?["Adresse"] as? String
if adresse == nil {
adresse = value?["Address"] as? String
}
var idFB = value?["ID Facebook"] as? Int
if idFB == nil {
idFB = value?["Facebook ID"] as? Int
}
//let clubFbId = String(describing: idFB)
//print(clubFbId)
print("\(idFB)")
let clubStruct: Club = Club(name: name!, adresse: adresse!, contact: contact!, clubIdFb: idFB!)
if prix != nil {
clubStruct.prix = prix
}
self.clubArray.updateValue(clubStruct, forKey: idFB!)
print(self.clubArray[idFB!]?.name)
}
}){ (error) in
print(error.localizedDescription)
}
ref.child("Events").observe(.value, with: { (snapshot) in
//var indice: Int = 1
for child in snapshot.children{
let snap = child as! DataSnapshot
//print(snap.key)
let event = snap.childSnapshot(forPath: "0").value as? [String:Any]
let place = snap.childSnapshot(forPath: "0").childSnapshot(forPath: "place").value as? [String:Any]
let clubFbId = place?["id"] as? String
let name = event?["name"] as? String
let start_time = event?["start_time"] as? String
let end_time = event?["end_time"] as? String
let eventFbId = event?["id"] as? String
let videoURL = event?["videoURL"] as? String
let timetable = event?["timetable"] as? [String:String]
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
dateFormatter.timeZone = TimeZone(abbreviation: "GMT+2:00")
let start = dateFormatter.date(from: start_time!)!
let end = dateFormatter.date(from: end_time!)!
if self.currentDate! > end {
continue
}
let location = snap.childSnapshot(forPath: "0").childSnapshot(forPath: "place").childSnapshot(forPath: "location").value as? [String:Any]
let latitude = location?["latitude"] as? CLLocationDegrees
let longitude = location?["longitude"] as? CLLocationDegrees
let eventStruct: Event = Event(latitude: latitude!, longitude: longitude!, clubIdFb: clubFbId!, eventIdFb: Int(eventFbId!)!, name: name!, start: start, end: end, idFirebase: snap.key)
if videoURL != nil {
eventStruct.videoURL = videoURL
}
if timetable != nil {
eventStruct.timetable = timetable
}
self.eventArray.updateValue(eventStruct, forKey: clubFbId!)
//print(self.eventArray[clubFbId!]?.name)
let event_marker = GMSMarker()
let clubimage = UIImage(named: "clubmarker")
let markerView = UIImageView(image: clubimage)
markerView.frame = CGRect(x: 0, y: 0, width: 58, height: 103)
event_marker.position = CLLocationCoordinate2D(latitude: latitude!, longitude: longitude!)
event_marker.map = mapViewFirst
event_marker.iconView = markerView
event_marker.isTappable = true
event_marker.groundAnchor = CGPoint(x: 0.5, y: 0.5)
let position = CLLocationCoordinate2D(latitude: latitude!, longitude: longitude!)
let event_item = POIItem(position:position, marker: event_marker)
self.clusterManager.add(event_item)
self.clusterManager.cluster()
// var iconGenerator : GMUDefaultClusterIconGenerator!
// let renderer = GMUDefaultClusterRenderer(mapView: mapViewFirst, clusterIconGenerator: iconGenerator)
if event_marker.position.latitude == self.latitude{
event_marker.iconView?.tintColor = UIColor.red
}
}
}){ (error) in
print(error.localizedDescription)
}
}
print(eventArray)
getClubs()
:
だからここでは、コードスニペットですこれはしばらくの間です。ここで
おかげでたくさんです! –