MapKitの地図をGoogleMap風にカスタマイズする
簡単に現在地の周辺や特定の場所を表示したりするだけならGoogle Map SDKを使えば良さそうなんですが、
アノテーションを充実させたり、検索機能が必要だったりするとMapKitを使う方がベターだったりします。
(知ってる限りではGoogle Mapでの検索はPlace APIで課金が発生する)
とはいえUberみたいなイケてる地図を表示したいという要求がデザイナーから来ることも無きにしも非ず。
そういう場合は、後述する方法でMapKitのメリットを享受しながら見た目だけGoogle Map風に変更する、のが一つの手かと思います。
方法
MapKitの地図はオーバーレイの画像をMKTileOverlay
で指定することができるようになっているのでそれを加工します。
MKTileOverlay - MapKit | Apple Developer Documentation
私は今回調べるまで聞いたこともなかったんですが、タイルオーバーレイというのは地図のタイル(小さい単位の区域)を表示する際にタイルのデータを(サーバから)取得して地図の上に表示する仕組みのようです。
タイルのデータの取得先は自分でホストしたり以下のようなプロバイダーからAPIで取得したり、といった感じ。
Tile servers - OpenStreetMap Wiki
Google Maps APIs Styling Wizard
このタイルオーバーレイの仕組みを利用してGoogle Map風のタイルを取得するSDKがこちら👏
Googleが提供しているGoogle Maps APIs Styling Wizardを利用してタイルデザインのJSONファイルをまずは自分で作成しSDKに渡します。
SDKはそのJSONファイルのパースして、Googleのタイルサーバへとリクエスト、取得したタイルの表示までしてくれるようです。
Snazzy Maps
Styling Wizardを利用して自分好みのタイルデザインを作ることも可能ですが、
クールでセクシーなデザインがまとまっているサイトがあるので、そちらから気に入ったものを選ぶこともできます🤩
参考
色々と調べる中で以下のブログを見つけ、まさにこれだ!となりました。感謝。