gpt4 book ai didi

ios - 将 Double 转换为 CLLocationDegrees [SWIFT]

转载 作者:行者123 更新时间:2023-11-28 13:48:52 24 4
gpt4 key购买 nike

我正在尝试将两个数组转换为 CLLocationDegrees,然后将它们合并为一个数组 (CLLocationCoordinate2D)。

让我们从头开始:

我有两个从 Firestore 收到的 Double 类型的数组。 (一个带有纬度,一个带有经度)。我正在尝试将这些数组转换为 CLLocationDegrees,然后将它们合并到一个类型为 CLLocationCoordiante2D 的数组中。

在代码的顶部(在类里面)我有这个:

var latitude:[Double] = []
var longitude:[Double] = []

var locations: [CLLocationCoordinate2D] = []

在 viewDidLoad 之后,我创建了一个如下所示的函数:

func insertInMap()
{
if (CLLocationManager.locationServicesEnabled())
{
//WARNING BELOW
locations = [CLLocationCoordinate2D(latitude: latitude as! CLLocationDegrees, longitude: longitude as! CLLocationDegrees)]
print(locations)

//Insert the coordinates (In the correct order) into mapView.
//Draw a polyline between the coordinates
} else{
//Code here
}
}

我得到的警告是:

Cast from '[Double]' to unrelated type 'CLLocationDegrees' (aka 'Double') always fails

如果我打印“locations”,它会返回:

[0, 0]

有人知道怎么解决这个问题吗?请告诉我。如果您在这里是为了不喜欢,请至少在评论中写下原因。

最佳答案

请仔细阅读警告。

两者都是 latitudelongitude是数组,CLLocationCoordinate2D init方法需要一个 latitude一个 longitude .

你可以使用 zipmap创建坐标数组

assert(latitude.count == longitude.count, "Both arrays must contain the same number of items")
locations = zip(latitude, longitude).map{CLLocationCoordinate2D(latitude: $0.0, longitude: $0.1)}

甚至更短

locations = zip(latitude, longitude).map(CLLocationCoordinate2D.init)

如果条件失败,断言行会导致 fatal error 。

关于ios - 将 Double 转换为 CLLocationDegrees [SWIFT],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55024697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com