IOS Mapkit or Core Location解决旅行商问题

标签 ios swift mapkit core-location

Google Directions 有一个 API 来解决 Traveling Salesman Problem --计算一组点的最短路线--但要收费。在 Apple 世界中,Polyline 和 MKRoute 似乎很有前途,但我在文档中找不到任何内容表明它们支持两个以上的点——开始和目标。有没有人在使用 MapKit 和/或 Core Location 时遇到过 TSP 问题?似乎可以使用类似的方法计算节点之间所有边的时间距离:

request.source = startLocation
        request.destination = destLocation
        request.requestsAlternateRoutes = true
        request.transportType = .automobile

        let directions = MKDirections(request: request)
        directions.calculate { (directions, error) in

            if var routeResponse = directions?.routes {
                routeResponse.sort(by: {$0.expectedTravelTime <
                    $1.expectedTravelTime})
                let quickestRouteForSegment: MKRoute = routeResponse[0]

                completion(quickestRouteForSegment.expectedTravelTime)  
            }
        }
    }

并手动开发一种算法来尝试各种可能性并选择最快的算法。但这很快就会变得复杂并且需要很多请求。只是想知道是否有人发现了一种更复杂的方法来处理它。

最佳答案

您将无法通过使用 Mapkit 实现您想要的,因为您将需要大量请求并且 Apple 会限制您的应用程序。坚持使用 Google 或 Mapbox,它们具有用于 STP 的矩阵 API,而 Mapkit 没有。

关于IOS Mapkit or Core Location解决旅行商问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53824104/

相关文章:

ios - 重新排序 UIView subview

ios - 如何在 iOS 模拟器上本地化 "<AppName> Would Like to Send You Notifications"权限对话框?

SwiftUI 通过 Navigationview 推送 View 在关闭工作表后弹出

ios - Jenkins:faSTLane 在 cocoapods 中失败

json - Swift - JSON 数组值

ios - 是否有提供交通信息的适用于 iOS 的 Google Maps API?

ios - 如何从 UIImage 获取文件路径?

ios - 在 viewController 之间传递 facebook 信息

ios - 带有工具栏的 Mapview 默认 map iphone

iphone - 在 Xcode 中打开原生谷歌地图