Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SwiftUI:如何从CloudFireStore中获取地质点并显示它?_Ios_Database_Google Cloud Firestore_Swiftui - Fatal编程技术网

Ios SwiftUI:如何从CloudFireStore中获取地质点并显示它?

Ios SwiftUI:如何从CloudFireStore中获取地质点并显示它?,ios,database,google-cloud-firestore,swiftui,Ios,Database,Google Cloud Firestore,Swiftui,所以我有一个云Firestore设置,其中每个图像文档都有相同的4个字段,但值不同 然后如何迭代所有图像文档并获取GeoPint?那么我以后可以显示经纬度了吗 我想迭代部分并不那么重要,所以她的提问方式是,我如何获得地质点,然后在我的项目中显示它 基于我的最后一个答案(): 然后,要稍后显示文字坐标,请执行以下操作: ForEach(images, id: \.id) { image in Text("Location: \(image.position.latitude), \

所以我有一个云Firestore设置,其中每个图像文档都有相同的4个字段,但值不同

然后如何迭代所有图像文档并获取GeoPint?那么我以后可以显示经纬度了吗

我想迭代部分并不那么重要,所以她的提问方式是,我如何获得地质点,然后在我的项目中显示它


基于我的最后一个答案():

然后,要稍后显示文字坐标,请执行以下操作:

ForEach(images, id: \.id) { image in 
  Text("Location: \(image.position.latitude), \(image.position.longitude)")
}
用于显示地质点的更新

struct GeoPointView : View {
    var position : GeoPoint

    struct IdentifiablePoint: Identifiable {
        var id = UUID()
        var position : GeoPoint
    }
    
    var body: some View {
        Map(coordinateRegion: .constant(
                MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: position.latitude, longitude: position.longitude), span: MKCoordinateSpan(latitudeDelta: 0.005, longitudeDelta: 0.005))), annotationItems: [position].map { IdentifiablePoint(position: $0)}) { point in
            MapPin(coordinate: CLLocationCoordinate2D(latitude: point.position.latitude, longitude: point.position.longitude))
        }
            .frame(width: 200, height: 200)
    }
}
用法:

ForEach(images, id: \.id) { image in 
  Text("Location: \(image.position.latitude), \(image.position.longitude)")
  GeoPointView(position: image.position)
}


如果你的意思是在地图上,我可以根据需要更新这个答案,或者你可以参考苹果开发者论坛上的以下帖子:

当将“位置”传递到“图像模型”时,“位置”在该结构中应该有什么类型?我如何在地图上显示位置@jnpdxPosition将是GeoPoint类型。你有没有关注苹果开发者帖子的链接?如果我更新我的答案,我可以澄清其中的具体部分吗?用显示地质点的地图示例更新了我的答案我尝试了代码,所有代码似乎都正常工作。但是我如何修改“地图代码”以便只显示一个硬编码的位置?并显示我自己的位置@jnpdxi如果你想显示一个硬编码的位置,你可以写在一个特定的纬度和经度。查看
CLLocationCoordinate2D
子句中传递到映射的位置。显示您自己的位置也超出了这个问题的范围,因为它涉及到请求位置许可等,但是有大量的资源。例如:
struct GeoPointView : View {
    var position : GeoPoint

    struct IdentifiablePoint: Identifiable {
        var id = UUID()
        var position : GeoPoint
    }
    
    var body: some View {
        Map(coordinateRegion: .constant(
                MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: position.latitude, longitude: position.longitude), span: MKCoordinateSpan(latitudeDelta: 0.005, longitudeDelta: 0.005))), annotationItems: [position].map { IdentifiablePoint(position: $0)}) { point in
            MapPin(coordinate: CLLocationCoordinate2D(latitude: point.position.latitude, longitude: point.position.longitude))
        }
            .frame(width: 200, height: 200)
    }
}
ForEach(images, id: \.id) { image in 
  Text("Location: \(image.position.latitude), \(image.position.longitude)")
  GeoPointView(position: image.position)
}