【发布时间】:2019-09-20 15:20:24
【问题描述】:
在开车时,我会记录行驶过程中的不同坐标。如果我在通常在直线上的两点之间行驶,则以下代码的地图跨度运行良好,但如果我在街区周围行驶,则地图跨度不会显示路线。我通常可以看到,因为我使用的是第一个和最后一个坐标,这就是原因。然后将该区域放入快照中以生成地图图像。我正在努力解决的是能够使用所有坐标来计算所需的跨度。
//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)
}
但我也无法让它显示圆圈。有人知道我该怎么做吗?
【问题讨论】: