我试图在MKMapView上的两个lat/lon点之间画一条伟大的圆圈线。这是一条显示为圆形(地球仪上的“直线”)的线条,并且是最好的可视化这里。事实上,这个非常奇怪的WordPress站点似乎开始准确地描述如何做到这一点,但在最初的几步之后,它突然结束了。
阅读苹果的文档我看到了
在iOS 4.0及更高版本中,您还可以使用投影地图坐标而不是区域来指定某些值。当你把地球的曲面投影到一个平面上时,你会得到一张二维的地图,其中的经线看起来是平行的。此地图上的位置和距离是使用MKMapPoint、MKMapSize和MKMapRect数据类型指定的。您可以使用这些数据类型来指定映射的可见区域和指定覆盖的位置。
我不确定如何将这个应用到一个大圆圈覆盖中。有人能帮忙吗?
发布于 2017-05-19 16:19:02
这是游戏的后期,但值得一提的是MKGeodesicPolyline
,新的自iOS 7.0,它“跟踪最短的路径沿地球表面”。
这样,创建和添加一个MKPolylineOverlay
类型的测地线就变得简单了。
points = [CLLocationCoordinate2DMake(27.123, 85.765),
CLLocationCoordinate2DMake(41.444, 106.987)]
geodesic = MKGeodesicPolyline(coordinates: points, count: 2)
mapView.add(geodesic)
请记住包括呈现器,并给mapView一个委托:
//MARK: - MKMapView Delegate Method
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is MKGeodesicPolyline {
let polylineRenderer = MKPolylineRenderer(overlay: overlay)
polylineRenderer.strokeColor = UIColor.white
polylineRenderer.lineWidth = 2.5
return polylineRenderer
}
}
https://stackoverflow.com/questions/6104517
复制相似问题