IOS Mapkit或旅行推销员问题的核心位置解决方案

IOS Mapkit或旅行推销员问题的核心位置解决方案,ios,swift,mapkit,core-location,Ios,Swift,Mapkit,Core Location,Google Directions有一个api来解决这个问题——计算一组点上的最短路线——但要收费。在苹果的世界里,Polyline和MKRoute似乎很有前途,但我在文档中找不到任何东西表明它们支持两个以上的点——start和dest。使用MapKit和/或Core Location解决TSP问题是否有人运气好?似乎可以使用以下方法计算节点之间所有边的时间距离: request.source = startLocation request.destination = destL

Google Directions有一个api来解决这个问题——计算一组点上的最短路线——但要收费。在苹果的世界里,Polyline和MKRoute似乎很有前途,但我在文档中找不到任何东西表明它们支持两个以上的点——start和dest。使用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)  
            }
        }
    }
request.source=0
request.destination=destLocation
request.requestSalterRoutes=true
request.transportType=.automobile
let directions=MKDirections(请求:请求)
方向。计算{(方向,误差)
如果var RouterResponse=方向?.routes{
排序(按:{$0.expectedTravelTime<
$1.expectedTravelTime})
让QuicksRouteForSegment:MKRoute=routeResponse[0]
完成(分段的快速路线。预期行程时间)
}
}
}

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

使用Mapkit你将无法实现你想要的,因为你将需要大量的请求,苹果将限制你的应用程序。坚持使用Google或Mapbox,他们有用于STP的矩阵API,Mapkit没有。

此外,您需要使用carthage或cocoapods安装Mapbox吗?如果可能的话,我宁愿不使用依赖项。你可以使用其中任何一种来安装它,请参阅本指南:是的,Mapbox是实心的,它的模型与Google略有不同,请检查哪个模型适合你,然后使用它。