2017-05-19 6 views
2

こんにちは、私はこのルート= [[緯度、経度]、[緯度、経度] ...]のような配列を持っています。 配列の座標に続く行を描く必要があります。私はこの機能を試してみました:スイフト値の配列のルートを描く

func addPolylineToMap(locations: [CLLocation]){ 
    var coordinates = locations.map({ (location: CLLocation!) -> CLLocationCoordinate2D in 
     return location.coordinate}) 
    var countLocations = locations.count 
    let geodesic = MKGeodesicPolyline(coordinates: &coordinates, count: locations.count) 
    mapView.addOverlay(geodesic) 
} 

し、それをアレイルートを与える関数を呼び出す:

addPolylineToMap(locations: route as! [CLLocation]) 

コンパイラは、私はそれができるようわからないんだけど、とにかく私にエラーambiguous use of 'init(coordinates:count:)'

を与えます作業。 誰かが私にそれをより良くする方法を説明できますか?

P.S.

ROUTE

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 

    let userLocation: CLLocation = locations[0] as CLLocation 

    manager.startUpdatingLocation() 
    var userLatitude = (userLocation.coordinate.latitude) 
    var userLongitude = (userLocation.coordinate.longitude) 
    userMoves = [(userLatitude),(userLongitude)] 

ルートは、アレイは、ユーザーがあなたはその&を削除することができます

答えて

0

を動かす追加作成されています。スウィフト3では:

func addPolylineToMap(locations: [CLLocation]) { 
    let coordinates = locations.map { $0.coordinate } 
    let geodesic = MKGeodesicPolyline(coordinates: coordinates, count: coordinates.count) 
    mapView.add(geodesic) 
} 

それともスウィフト2:

func addPolylineToMap(locations: [CLLocation]) { 
    let coordinates = locations.map { $0.coordinate } 
    let geodesic = MKGeodesicPolyline(coordinates: coordinates, count: coordinates.count) 
    mapView.addOverlay(geodesic) 
} 
+0

ファイン、コードの一部が今取り組んでいるあなたに感謝が、私は上の新しいエラーが表示されます。addPolylineToMap(場所:!ルートとして[CLLocation ]) "thread 1:signal SIGABRT ' –

+0

CONSOLE OUTPUT:' Swift._SwiftDeferredNSArray '(0x10a665040)の値を' CLLocation '(0x10a35f388)にキャストできませんでしたか? –

+0

内容を見てください。 CLLocationオブジェクトではありませんが、これはすべて別個の質問です。いくつかの診断を行い、 'route'をどのように構築したのか把握してください。その話題に関する別の質問を投稿してください。 – Rob

関連する問題