これは数年前に尋ねられたことは知っていますが、すべての回答には Google Maps API を使用してこれを解決することが含まれていました。iOS8 がリリースされ、ネイティブ MapKit に多くの改良が加えられた今、これを解決する適切な方法があるのだろうかと思います。
基本的に、多くの中間点で構成される道路上にポリラインを描画します。
var locations = [CLLocation]()
for item in list {
locations.append(CLLocation(latitude: CLLocationDegrees(item["location"]["coordinate"]["x"].doubleValue), longitude: CLLocationDegrees(item["location"]["coordinate"]["y"].doubleValue)))
}
var coordinates = locations.map({(location: CLLocation!) -> CLLocationCoordinate2D in return location.coordinate})
var polyline = MKPolyline(coordinates: &coordinates, count: locations.count)
mapView.addOverlay(polyline)
一度にマップ上に 5 ~ 30 のポイントがあります。ポリラインがそれらを接続すると、旅行の多かれ少なかれ公正な表現が得られます. 問題は、道路にくっつかないことです。
そのため、時々「荒い」エッジを取得しています。私が Google Direction API を使用していた場合でも、それは 8 つのウェイ ポイントに制限されており、基本的にポイント A からポイント B に移動する方法を決定し、途中で滑らかなポリラインを描画します。また、Directions API は 24 時間あたり 2500 回の使用に制限されています。必要なのは、現在のポリラインを最も近い道路に調整することだけです
どうもありがとう