見出し画像

【新バージョンリリース】モバイルアプリで3Dマップが利用可能に + iOS Metal / Kotlin / Swiftへの対応 | Mapbox Mobile Maps SDK v10 β版

この度、Mapbox Mobile Maps SDKのv10がβ版としてリリースされ、新しい3D TerrainやCamera API、Sky APIに対応したため、AndroidとiOSで3Dマップのご利用が可能になりました。また、v10のレンダラーとSDKアーキテクチャでは、iOSのMetalへの対応や、パフォーマンスの向上、開発の高速化と安定性を高める堅牢なAPIの提供、Androidアプリ開発言語であるKotlinとiOSアプリ開発言語であるSwiftへの対応などが実現しています。

画像1

1. 新しいコアレンダラー - 3DマップやSky APIが利用可能に

2020年12月にMapbox GL JS v2の新しい3D Terrain、Camera API、Sky APIの提供が発表されましたが、これらの技術がMaps SDK v10の一部として対応されたため、ネイティブのモバイルプラットフォームにおいても利用可能になりました。 マップ上のマーカーや道路、ラベルなどが操作に応じて自動的に反応する、というようなインタラクティブ性や機能もデフォルトの動作としてご利用いただけます。また、マップの最大ピッチは60度から85度に増加し、Sky APIを活用して太陽の位置や大気の色相を制御することで空を表現できるようになりました。

画像3

▲ モバイルアプリでも3Dマップが使用可能に


2. iOSのMetalへの対応 - より速く、より美しく

v10の新しいレンダリングアーキテクチャでは、Appleが提供するiOSの低レベル3DグラフィックおよびシェーダAPIであるMetalへの対応を含む、プラガブル・バックエンドが可能になりました。すべてのレイヤーはそれぞれ、OpenGLまたはMetalのプリミティブに自動的にコンパイルされ、どちらの場合でも正確なレンダリング結果が得られるようになりました。アプリは、ネイティブのレンダリングレイヤーを活用することでOSレベルでのパフォーマンス最適化をし、一貫したビジュアルでMapboxのマップをAndroidとiOSにデプロイすることができます。さらに、Mobile Maps SDK v10を使用することでiOSにおけるマップのロード時間が25~35%高速化されます。

画像2

▲ v10と旧バージョンのマップのロード時間比較


3. ローエンドのAndroidデバイスのためのパフォーマンスの最適化

新しいMobile Maps SDKでは、ローエンドのAndroidデバイスでよく使用される低速ストレージメディアでのパフォーマンス最適化のため、マップデータの入出力にトランザクションのキャッシュと処理を導入しています。データ入出力を最適化することで、直接マップデータを読み込む際の速度を60%向上させ、すべての主要なAndroidデバイスにおいてマップのロードが25~40%高速化しましした。


4. ネットワークフットプリントの削減

アップデート前は、すべてのマップ上のラベルにおいてネットワーク経由で取得したフォントを使用してレンダリングする必要がありました。v10では、ローカルでのグリフレンダリングのサポートが追加され、開発者はデバイス上ですでに利用可能なデフォルトフォントを使用して、マップのラベル用SDFテクスチャを生成することができるようになりました。この改善により、例えば東京のような場所ではマップのロード帯域幅が18%も削減されます。


5. ナビゲーションのための高性能なトラッキング・レンダリング・データフィルタリング

ナビゲーションにおけるレンダリングパフォーマンスを最適化し、位置データの更新をより高速にするために、ユーザー位置情報のインジケータが新しいコアレイヤーで書き直されました。他にも、ルートをたどっているときのラベル位置のスタビライザーと、傾斜したマップビューにおける読み込み効率を向上させる新しいタイル読み込みアルゴリズムが導入されています。

またMobile Maps SDK v10では、経路に沿ったフィーチャを簡単にフィルタリングするために、リファクタリングされた距離と閾値のexpressionが追加されました。開発者は、これらのフィルターを活用して、主要な交差点のみをハイライトしたり、ドライバーの目的地までの道のりに沿って特定のPOI表示を優先させたりすることができます。

"filter": [
    "case",
    ["<", ["distance", geoJsonObject], 50],
    true,
    false
]


6. KotlinとSwiftを使ったより早い開発

v10ではアプリケーション開発をより速く、より直感的に行えるように設計されており、AndroidではKotlin、iOSではSwiftを採用しています。

Mobile Maps SDK v10 はオブジェクトのライフサイクル処理を自動化し、開発者が書くコードの量を減らし、潜在的なバグの原因を排除してます。またネイティブエンジンからのすべての例外(exception)がSDKによってラップされるようになり、不安定性の重要な原因を排除し、開発者がコードをデバッグする際により多くの情報を得ることができるようになりました。

他にもマップのスタイルAPI とレイヤーAPIの作業がより簡単になりました。新しいドメイン固有言語(DSL)により、Mapboxのスタイル仕様を用いてプラットフォーム間で直感的にマップスタイルを更新できるようになりました。Mapboxのスタイル仕様のネイティブJSONを使用したことのある開発者にとっては、Expressionを書く作業がより馴染み深く、快適なものになります。


7. 利用料金

Mobile Maps SDKの利用料金は、他のMapboxが提供するサービスと同様、pay-as-you-go方式でご利用いただけます。Mapboxのユーザーアカウントとアクセストークンがあればすぐにご利用いただけます。また、v10の価格設定は以前のバージョンのモバイル向けSDKと変わらず、無料で使用できる範囲ももちろん含まれています。ただしv10からは、換算されるMAUカウントが、他のMapboxが提供するデータやサービスを使用しているかどうかに関わらず、本SDKの使用のみに基づいて計算されますのでご注意ください。


・・・


早速使ってみましょう

β版のMobile Maps SDKのご利用を開始するには、以下の製品ページからGetting Started Guide、Migration Guide、API Documentation をご覧ください。


【関連記事】

お問い合わせは下記までご連絡ください
https://www.mapbox.jp/contact