gpt4 book ai didi

ios - 计算绕圈行驶时的 map 区域

转载 作者:行者123 更新时间:2023-11-29 05:27:22 24 4
gpt4 key购买 nike

开车时我会记录行驶过程中的不同坐标。如果我在通常呈直线的两点之间行驶,则以下代码的 map 跨度效果很好,但如果我在街区周围行驶,则 map 跨度不会显示路线。我通常可以看到,由于我使用的是第一个和最后一个坐标,这就是原因。然后将该区域放入快照中以生成 map 图像。我正在努力解决的是能够使用所有坐标来计算所需的跨度。

//calculate region
let span = MKCoordinateSpan.init(latitudeDelta: fabs(startCoord.latitude - endCoord.latitude) * 1.6, longitudeDelta: fabs(endCoord.longitude - startCoord.longitude) * 1.6)
let resd = CLLocationCoordinate2D.init(latitude: startCoord.latitude - (startCoord.latitude - endCoord.latitude) * 0.5, longitude: startCoord.longitude + (endCoord.longitude - startCoord.longitude) * 0.5)

let options = MKMapSnapshotter.Options()
options.scale = UIScreen.main.scale
options.region = MKCoordinateRegion.init(center: resd, span: span);
options.size = CGSize(width: 600, height: 450) //map size
options.showsBuildings = true
options.showsPointsOfInterest = true

我发现了这段code关于另一个问题

func regionFor(coordinates coords: [CLLocationCoordinate2D]) -> MKCoordinateRegion {
var r = MKMapRect.null

for i in 0 ..< coords.count {
let p = MKMapPoint(coords[i])

r = r.union(MKMapRect(x: p.x, y: p.y, width: 0, height: 0))
}

return MKCoordinateRegion(r)
}

但我也无法让它显示圆圈。有人知道我该怎么做吗?

最佳答案

区域跨度是一个矩形。寻找边界矩形比寻找完全包围一组点的圆更简单。

只需设置最大和最小纬度和经度变量,这些变量以相反方向超出范围的值开始,循环遍历您的点,并且当点坐标为 >max 时或<min ,替换该值。完成后,使用最小-最大纬度和最小-最大经度值来定义您的区域跨度。

关于ios - 计算绕圈行驶时的 map 区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58031163/

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