###前提・実現したいこと
プログラミング経験6ヶ月ほどの初心者です。
Swift3.0.2でMapKitとCoreLocationを使った地図アプリを作成しています。
MKPolylineとデリゲートメソッドのmapView(_:rendererFor:)で3箇所ほど
地図上に線を引き表示するところまでは出来ましたが、どのように分岐をさせ
別々の色を設定すれば良いのか書き方がわからず困っております。
どうかご教示いただきたくお願いいたします。
###発生している問題・エラーメッセージ
・追加した3本のpolylineがすべて同じ色になってしまう。
###該当のソースコード
swift
1func polyline1() { 2 let line1 = [CLLocationCoordinate2D]() 3 line1.append(CLLocationCoordinate2D(latitude: 35.686897, longitude: 139.686823)) 4 line1.append(CLLocationCoordinate2D(latitude: 35.798471, longitude: 139.683419)) 5 6 // polyline作成 インスタンス変数にも保存しておく 7 let ptn1PolyLine: MKPolyline = MKPolyline(coordinates: &line1, count: line1.count) 8 ptn1PolyLineA = ptn1PolyLine 9 10 // myMapにpolylineを追加 11 myMap.add(ptn1PolyLineA) 12 } 13 14func polyline2() { 15 let line2 = [CLLocationCoordinate2D]() 16 line3.append(CLLocationCoordinate2D(latitude: 35.6471187, longitude: 139.740409)) 17 line3.append(CLLocationCoordinate2D(latitude: 35.760272, longitude: 139.728626)) 18 19 // polyline作成 インスタンス変数にも保存しておく 20 let ptn2PolyLine: MKPolyline = MKPolyline(coordinates: &line2, count: line2.count) 21 ptn2PolyLineB = ptn2PolyLine 22 23 // myMapにpolylineを追加 24 myMap.add(ptn2PolyLineB) 25 } 26 27func polyline3() { 28 let line3 = [CLLocationCoordinate2D]() 29 line3.append(CLLocationCoordinate2D(latitude: 35.631926, longitude: 139.880914)) 30 line3.append(CLLocationCoordinate2D(latitude: 35.707876, longitude: 139.808553)) 31 32 // polyline作成 インスタンス変数にも保存しておく 33 let ptn3PolyLine: MKPolyline = MKPolyline(coordinates: &line3, count: line3.count) 34 ptn3PolyLineC = ptn3PolyLine 35 36 // myMapにpolylineを追加 37 myMap.add(ptn3PolyLineC) 38 } 39 40// overlayをするデリゲートメソッド 41func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer { 42 43 /*overlayされる前にmapにaddしたpolylineの変数で分岐をさせたい*/ 44 if (MKPolyline == arN1PolyLineRe) { 45 46 // rendererを生成. 47 let myPolyLineRendere: MKPolylineRenderer = MKPolylineRenderer(overlay: overlay) 48 49 // 線の太さを指定 50 myPolyLineRendere.lineWidth = 3 51 52 // 線の色を指定 53 myPolyLineRendere.strokeColor = UIColor(red: 1.0, green: 0, blue: 0, alpha: 1.0) 54 55 print("polyline Map描画完了") 56 return myPolyLineRendere 57 } 58 } 59
###試したこと
・isKindOfClassで調べるような方法を試しましたが、MKCircleやMKPolygonとの分岐は出来ましたが
同じクラスの2つ目の描画、3つ目の描画で分岐させる方法がわかりませんでした。
使い方が間違っていることは理解できました。
どうぞ宜しくお願いいたします。
###補足情報(言語/FW/ツール等のバージョンなど)
・swift3.0.2
・storyboardでMapViewを作成しています。
・モーダルビューにスイッチが3つ配置してあり、対応したpolylineを描画するメソッドを実行しています。
あなたの回答
tips
プレビュー