---
# System prepended metadata

title: Untitled

---

## V10対応まとめ

### PioneerNaviSDK

frameworkの課題点
* Sampleアプリなどで使用する際に、SDKのコンパイル時にMapboxMapsのモジュールが見つからずビルドに失敗する
* PioneerNavi.frameworkを生成時にPioneerNavi.framework/PioneerNaviのファイルが作成されず失敗する

MapboxMapsの課題点
* オフラインマップのキャッシュサイズの割り当てがv10.7.0現在、不可能。[CHANGELOG](https://github.com/mapbox/mapbox-maps-ios/blob/main/CHANGELOG.md#breaking-changes-%EF%B8%8F-7)(質問事項一覧表No2)
* PIO_IntersectionMapで使用している`showsUserLocation`がv10で代替先が見つからない(質問事項一覧表No3)


### v6からv10の主な影響箇所
#### Annotation
https://docs.mapbox.com/ios/maps/guides/migrate-to-v10/#annotations
| V10 | V6  | 説明 |
| --- | --- | --- |
| PointAnnotation        | MGLPointAnnotation    | classからstructに変更され、サブクラスで拡張できなくなった。選択状態の変化時のDelegateがなくなった。Annotationがタップされた時に、紐ずくCallouViewが自動表示されなくなった。 |
| PolyLineAnnotation     | MGLPolyLineAnnotation | 同上 |
| ViewAnnotation | MGLViewAnnotation | UIView + ViewAnnotationOptionsでViewAnnotationを生成されるようになった。Annotationとの紐付けは、ViewAnnotationOptionsで行う |
| ViewAnnotation | MGLCalloutView | ViewAnnotationで統一された |
| AnnotationInteractionDelegate | -mapView:didDeselectAnnotation | Annotationのタップ時のdelegate |

Annotationの追加や削除を行う場合は、各AnnotationManagerで行う。
Annotationのタップの検出のdelegateもAnnotationManagerでもつ。

#### Layer
https://docs.mapbox.com/ios/maps/guides/annotations/style-layers/
| V10 | V6  | 説明 |
| --- | --- | --- |
| LineLayer              | MGLLineStyleLayer   | 線の表示 |
| CircleLayer            | MGLCircleStyleLayer | 円の表示 |
| FillExtrusionLayer     | MGLFillStyleLayer   | 3のレイヤーを組む場合に使用する|

idを引数にインスタンスを生成をするのは変わらないが、sourceの設定は別になる。
Annotationよりも詳細または高度な表示を行う場合はLayerを使用する。
Json形式のデータの表示も扱える。

#### Location
https://docs.mapbox.com/ios/maps/guides/user-location/
| V10 | V6  | 説明 |
| --- | --- | --- |
| PuckType |  MGLUserLocationAnnotationView | 現在位置の見た目を指定し、表示する。Puck2DConfigureで見た目を詳細設定できる。AnnotationViewではなくなった。 
| LocationProvider | MGLLocationManager | ほぼそのまま置き換わった |

mapview.location.options.puckType = .puck2D()でユーザのイメージをカスタマイズする。
カメラが位置情報を追跡するにはViewportを使用します。customStatusとtransitionsで拡張することも可能



### PioneerNaviの変更点
#### Annotation
| クラス | 説明 |
| ---- | --- |
| PIO_MapMarker | PIO_MapMarker自身は、Annotationに関する情報を保持するのみのクラスに変更した。makePointAnnotation()によりPointAnnotationを生成するようにした |
| PIO_MapCalloutView | UIViewを継承する。AnnotationViewとして追加する |
| PIO_ItemMarker | CalloutViewと同様の対応 |

#### Location
| クラス | 説明 |
| ---- | --- |
| PIO_UserLocationMarker | v10では不要なため削除した |
| PIO_LocationManager | LocationProviderを継承するように変更した |


### Sampleアプリ上で確認しているSDKの不具合

不具合
* 自車位置にフォーカスしない
    * アプリを起動した際に自車位置の中央で表示されない
    * マップモード変更時に自車位置にフォーカスできない
* 目的地検索で目的地を設定できるが、目的地にフォーカスされない
* 自車位置のイメージがおかしい
    * 赤い矢印の先端に白点が表示されてしまう
        * topImageとshadowImageの両方に自車イメージを設定する必要がある？
* マップモードを変更できない
    * ノースアップとヘディングアップのモードが切り替わらずアイコンも変わらない
* 交差点拡大図表示されない
* マップ内のフォントやアイコンが微妙に違う
* ルート探索でルート線がひかれない
* ルート案内の旗を案内終了しても消せない
* マップのロングタップでマーカーを刺して、それをタップした時に“delete”または“delete all”の選択肢が出ない
    * Annotationタップ時にMGLCalloutViewが自動表示されていた(presentCallout())。AnnotationInteractionDelegateでAnnotationタップ時の処理として、CalloutViewを表示する処理が必要
* マーカーのドラッグ&ドロップに対応する
    * * 構造体のため、v6の時のようにドラッグ機能を追加の拡張ができない。ドラッグ機能を実装するには、ViewAnnotationとしてPointAnnotationを実装するか、[UIPanGestureRecognizerを使用してPIO_Mapを拡張するか](https://github.com/mapbox/mapbox-maps-ios/issues/829#issuecomment-968055970)が考えられる。
* Setting>地図表示>デザイン をMapFan_R.jsonに変更してもデザインが変わらない
* Amebaが表示されない


Sampleアプリで確認できなかった処理
* インシデント表示ができるかどうか
* 渋滞情報を表示できるかどうか


