晚上好,我对使用Google Heatmaps很陌生,当我尝试从Firebase检索用户的坐标以将Heatmap存储为Google Maps上的热图时,出现以下错误代码,无法转换类型'__NSDictionaryM'的值(0x2689df890)到'NSValue'(0x2689ec640)。
我真的希望有人可以看看我的代码并帮助我解决此问题。我已经对此进行了一段时间的研究,由于某种原因,我找不到解决方案。
非常感谢您,我非常感谢您的帮助。
public var mapView: GMSMapView!
private var heatmapLayer: GMUHeatmapTileLayer!
override func viewDidLoad() {
super.viewDidLoad()
heatmapLayer = GMUHeatmapTileLayer()
heatmapLayer.radius = 80
heatmapLayer.opacity = 0.8
heatmapLayer.gradient = GMUGradient(colors: gradientColors,
startPoints: gradientStartPoints!,
colorMapSize: 256)
addHeatmap()
checkIfUserIsLoggedIn()
heatmapLayer.map = myMapView
func addHeatmap() {
guard let uid = Auth.auth().currentUser?.uid else {
return
}
let ref = Database.database().reference(withPath: "JobPost").child(uid)
ref.observeSingleEvent(of: .value, with: { snapshot in
if !snapshot.exists() { return }
let location = snapshot.childSnapshot(forPath: "location").value
print(location!)
let coords = GMUWeightedLatLng(coordinate: location as! CLLocationCoordinate2D, intensity: 1.0)
self.heatmapLayer.weightedData = [coords]
})
}
}
该位置会在我的控制台中打印,但是由于我之前提到的错误而崩溃。