IOS Mapkit或旅行推销员问题的核心位置解决方案
Google Directions有一个api来解决这个问题——计算一组点上的最短路线——但要收费。在苹果的世界里,Polyline和MKRoute似乎很有前途,但我在文档中找不到任何东西表明它们支持两个以上的点——start和dest。使用MapKit和/或Core Location解决TSP问题是否有人运气好?似乎可以使用以下方法计算节点之间所有边的时间距离: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
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略有不同,请检查哪个模型适合你,然后使用它。