Arrays 如何从数组结构中获取纬度和经度并创建标记?
我是swift新手,目前正试图让我的应用程序在我的谷歌地图视图中显示标记。纬度和经度保存在数组结构中。由于某种原因,我无法从数组中获取数据。所以我的主要问题是为什么它不起作用,它将如何起作用 此外,我想知道将struct元素设置为CLLocation类型是否可行Arrays 如何从数组结构中获取纬度和经度并创建标记?,arrays,swift,google-maps,Arrays,Swift,Google Maps,我是swift新手,目前正试图让我的应用程序在我的谷歌地图视图中显示标记。纬度和经度保存在数组结构中。由于某种原因,我无法从数组中获取数据。所以我的主要问题是为什么它不起作用,它将如何起作用 此外,我想知道将struct元素设置为CLLocation类型是否可行 struct pickerStruct { var lat: Double var long: Double } func showPickers() { //For every pickerStruct in picke
struct pickerStruct
{
var lat: Double
var long: Double
}
func showPickers() {
//For every pickerStruct in pickers create a picker
//The marker should have the in pickers saved latitude and longitude
for pickerStruct in pickers {
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: pickers.lat, longitude: pickers.long)
marker.map = mapView
}
}
我得到的错误是:“[pickerStruct]”类型的值没有成员“lat”
挑选者来自哪里:
Pickers是一个从Firebase数据库获取数据的数组
ref = Database.database().reference()
ref.child("locations").observe(.childAdded, with: { snapshot in
let newLat = snapshot.value as? NSDictionary
let lat:Double = (newLat?["lat"] as? Double)!
let newLong = snapshot.value as? NSDictionary
let long:Double = (newLong?["long"] as? Double)!
self.pickers.append(pickerStruct(lat: lat, long: long))
})
存在的问题是,当您应该访问元素属性时,您正在尝试访问数组lat属性
for picker in pickers {
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: picker.lat, longitude: picker.long)
marker.map = mapView
}
存在的问题是,当您应该访问元素属性时,您正在尝试访问数组lat属性
for picker in pickers {
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: picker.lat, longitude: picker.long)
marker.map = mapView
}
就像在评论中提到的Leo Dabus一样,showPickers函数应该是这样的:您使用的是数组选择器,而不是一个元素pickerstruct
func showPickers() {
//For every pickerStruct in pickers create a picker
//The marker should have the in pickers saved latitude and longitude
for pickerStruct in pickers {
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: pickerStruct.lat, longitude: pickerStruct.long)
marker.map = mapView
}
}
就像在评论中提到的Leo Dabus一样,showPickers函数应该是这样的:您使用的是数组选择器,而不是一个元素pickerstruct
func showPickers() {
//For every pickerStruct in pickers create a picker
//The marker should have the in pickers saved latitude and longitude
for pickerStruct in pickers {
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: pickerStruct.lat, longitude: pickerStruct.long)
marker.map = mapView
}
}
你能详细说明你的问题吗?由于某种原因,我无法从数组中获取数据,这是什么意思?采摘者来自哪里?我真的很想知道谁会在实际情况下投票反对这个问题…@Teetz如你所愿更新。由于某种原因,我无法从数组中获取数据,我的意思是,我想知道为什么我不能像“picker.lat”那样获取变量,因为它实际上是pickerStruct@LeoDabus哦,谢谢。它起作用了,好吧,那是愚蠢的^^你能详细说明你的问题吗?由于某种原因,我无法从数组中获取数据,这是什么意思?采摘者来自哪里?我真的很想知道谁会在实际情况下投票反对这个问题…@Teetz如你所愿更新。由于某种原因,我无法从数组中获取数据,我的意思是,我想知道为什么我不能像“picker.lat”那样获取变量,因为它实际上是pickerStruct@LeoDabus哦,谢谢。它起作用了,好吧,那是愚蠢的^^