Arrays 如何从数组结构中获取纬度和经度并创建标记?

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

我是swift新手,目前正试图让我的应用程序在我的谷歌地图视图中显示标记。纬度和经度保存在数组结构中。由于某种原因,我无法从数组中获取数据。所以我的主要问题是为什么它不起作用,它将如何起作用

此外,我想知道将struct元素设置为CLLocation类型是否可行

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哦,谢谢。它起作用了,好吧,那是愚蠢的^^