使用MKMapView和MKRoute获取方向时出现问题

4
我正在绘制一条连接起点、途经点和终点的线,并将它们放入一个数组中并计算路径。一开始画得很好,但如果我第二次调用相同的方法,就会出现下面的错误,这在选择城市之间的长路线时发生,但如果我在城市内多次调用它(短路线),它就可以正常工作。
所以请问为什么我在长路上会出现错误?我的问题在哪里?

'Error Domain=MKErrorDomain Code=3 "Directions Not Available" UserInfo={NSLocalizedFailureReason=Route information is not available at this moment., MKErrorGEOError=-4, MKDirectionsErrorCode=2, NSLocalizedDescription=Directions Not Available'

func calculateRoute(wayPoint: [MKMapItem]) {

    let request:MKDirectionsRequest = MKDirectionsRequest()
    var allPointsArray: [MKMapItem] = []
    var directions: MKDirections = MKDirections(request: request)
    var directionsResponse: MKDirectionsResponse = MKDirectionsResponse()
    var route: MKRoute = MKRoute()

    for points in wayPoint{
        allPointsArray.append(points)
    }

    for var i = 0; i < allPointsArray.count - 1; ++i {

        request.source = allPointsArray[i]
        request.destination = allPointsArray[i+1]
        request.transportType = MKDirectionsTransportType.Automobile
        request.requestsAlternateRoutes = false

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

            if error == nil {

                directionsResponse = response!
                route = directionsResponse.routes[0]
                self.mapView.addOverlay(route.polyline, level: MKOverlayLevel.AboveRoads)

            }else {
                print(error)
            }
        }
    }
}
1个回答

2

这是因为您在短时间内发送了太多请求。每秒允许的请求数量有限制。尝试跳过数组中的每个第二个点,看看是否有效。


1
你知道这个限制吗?有没有记录在某个地方? - Hons

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接