ios - 我正在尝试在 Swift 中创建两点之间的路线,但我的 MKDirectionsResponse 似乎出现错误

标签 ios swift mapkit cllocation

我正在尝试学习如何在两个位置之间生成一条路线,因此我创建了一个包含假位置和其他内容的项目,这样一旦我“明白了”,我就可以在我的真实应用中实现它。

我试图在“location”和“next”之间生成一条路线,但遇到了一个严重的错误。

代码如下:

import UIKit
import MapKit
import CoreLocation

class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {

@IBOutlet var map: MKMapView!

var geocoder:CLGeocoder = CLGeocoder()
var location:CLLocation = CLLocation(latitude: 38, longitude: -77)
var next:CLLocation = CLLocation(latitude: 38.21, longitude: -77.21)
var locMark:MKPlacemark?
var destMark:MKPlacemark?
var manager:CLLocationManager = CLLocationManager()
var source:MKMapItem?
var destination:MKMapItem?
var request:MKDirectionsRequest = MKDirectionsRequest()
var directions:MKDirections = MKDirections()
var directionsResponse:MKDirectionsResponse = MKDirectionsResponse()
var route:MKRoute = MKRoute()


override func viewDidLoad() {
    super.viewDidLoad()

    manager.requestAlwaysAuthorization()

    map.mapType = MKMapType.Satellite

    locMark = MKPlacemark(coordinate: CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude), addressDictionary: nil)
    destMark = MKPlacemark(coordinate: CLLocationCoordinate2DMake(next.coordinate.latitude, next.coordinate.longitude), addressDictionary: nil)

    source = MKMapItem(placemark: locMark)
    destination = MKMapItem(placemark: destMark)

    request.setSource(source)
    request.setDestination(destination)
    request.transportType = MKDirectionsTransportType.Automobile
    request.requestsAlternateRoutes = true

    directions = MKDirections(request: request)

    directions.calculateDirectionsWithCompletionHandler { (response:MKDirectionsResponse?, error:NSError?) -> Void in

        if error == nil {
            self.directionsResponse = response!
            self.route = self.directionsResponse.routes[0] as! MKRoute
            map.addOverlay(route.polyline, level: MKOverlayLevel.AboveRoads)
        } else {
            println(error)
        }
    } 
}

路线没有显示。

最佳答案

我认为这是因为纬度范围从 -90 到 90,而 120 超出了范围。因此,您指定的数据无效。

第一个数字,纬度,范围从 -90 到 +90。第二个数字的范围从 -180 到 +180。

关于ios - 我正在尝试在 Swift 中创建两点之间的路线,但我的 MKDirectionsResponse 似乎出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30223998/

相关文章:

ios - 如何在没有 UITabBarController 的情况下使用 UITabBar?

ios - swift |初始化新应用

ios map 捕捉到道路实现

ios - 使用 MapKit 时在创建时设置 MKPointAnnotation 的标题

ios - 如何设置从页面控件指示器到 View 的约束

ios - 在 Xcode 中拥有多个 Storyboard

xcode - 警告 : directory not found for option after update to xcode 7

xcode - MP4 类型的 NSURL 出现 fatal error

swift - 身份验证按钮在 Fabric Digits Integration 中不可见

iphone - 使用缩放后 MKMapView 应用程序崩溃