地図とナビゲーション (QML)
「マップとナビゲーション」は、地図上に地理情報を表示するためのQtQuick ユーザーインターフェースタイプを提供するとともに、マップオーバーレイオブジェクトや表示自体に対するユーザーの操作を可能にします。また、ジオコーディング(住所から地理座標を特定すること)やナビゲーション(車や徒歩でのルート案内を含む)のためのユーティリティも含まれています。
ナビゲーションを実行するには、出発地から目的地までのrouteが必要です。これらのルートはセグメントで構成されており、各routeSegment はナビゲーションのサブタスクと見なすことができます。例えば、「100メートル走行」や「左折」などです。各セグメントの始点と終点はウェイポイント、つまり移動経路の一部となります。
このAPIの典型的なユースケースとして、ユーザーがレストランなどの特定の種類の場所を探す場合が挙げられます。ユーザーは地図アプリケーションに検索語句を入力すると、端末の「近く」にあるレストランの結果一覧が表示されます。 その後、このアプリケーションを使用して、移動を助ける、あるいは妨げる可能性のある環境の特性に応じて最適化されたルートに従い、選択した目的地までナビゲーションを行うことができます。ナビゲーションは、現在位置情報に基づいてユーザーの進行状況を監視しながら進められます。
これらの型は、QML Positioning API の API 概念および型に基づいています。Maps および Navigation の型に関するより実践的な紹介については、「Maps および Navigation チュートリアル」をご覧ください。
マップ
マップの表示
地図の表示には、Map というQML型を使用します。Map型は、MapView というQML型を通じてユーザー操作に対応しています。MapオブジェクトはOpenGL (ES) を使用して画面上に地図を描画するため、対応している環境ではハードウェアアクセラレーションによるレンダリングが可能になります。
主要なタイプ
| Plugin | 位置情報サービスプラグインは、Mapオブジェクトに表示される地図データを含むデータを提供します。 |
| Map | QtQuick 画面上に地図を表示するためのアイテム。 |
| MapView | Map 上のパン、フリック、ピンチ・トゥ・ズームといったジェスチャー操作のためのインタラクション・ヘルパー。 |
表示する地図データにアクセスするには、クライアントは `Map ` タイプを使用する前に `Plugin ` オブジェクトを作成する必要があることに注意してください。
マップへのオブジェクトの配置(マップオーバーレイオブジェクト)
マップには、その表面に情報を表示するために使用されるマップオーバーレイオブジェクトを含めることもできます。あらかじめ定義された基本的なマップオーバーレイオブジェクトのセットがあるほか、MapQuickItem タイプを使用してカスタムマップオーバーレイオブジェクトを実装することも可能です。このオブジェクトには、任意の標準的なQtQuick アイテムを含めることができます。
主なタイプ
| MapCircle | 地理的な円(中心から設定された距離にあるすべての点)。必要に応じて境界線を付けることができます。 |
| MapRectangle | 左上隅と右下隅の点がgeoCoordinate 型として指定される矩形。オプションで境界線を設定できます。 |
| MapPolygon | coordinates の任意のリストで構成されるポリゴン。 |
| MapPolyline | coordinates の任意のリストで構成されるポリライン。 |
| MapQuickItem | 任意の `QtQuick ` アイテムをマップオーバーレイオブジェクトに変換します。MapQuickItem は、カスタムマップオーバーレイオブジェクトを指定するための機能です。 |
マップオーバーレイオブジェクトを用いたモデル・ビュー設計
QtQuick モデル(たとえばListModel アイテム)の内容に基づいてマップオーバーレイオブジェクトを自動的に生成するには、MapItemView 型を使用します。この型は、任意のマップオーバーレイオブジェクトをデリゲートとして受け付け、Map 内でのみ作成できます。
キーの型
| MapItemView | モデルから提供されたデータに基づいて、マップにマップオーバーレイオブジェクトを配置します。 |
マップオーバーレイオブジェクトとの相互作用
表示上の外観に影響を与えるマップオーバーレイオブジェクトのプロパティはいつでも変更可能であり、その多くはアニメーションにも使用できます。MapPolygon やMapPolyline などの座標ベースのマップオーバーレイオブジェクトのアニメーション化は、現時点では利用できません。
ジオコーディング – 住所から座標へ、およびその逆
ジオコーディングとは、地理座標を住所に変換すること、またはその逆の変換を指します。通常、この変換にはソースデータをサーバーに送信し、サーバー側で変換を行って結果を返すプロセスが含まれますが、一部の位置情報サービスプロバイダー(plugins など)では、リモートサーバーにデータを送信することなく、一部のジオコーディング機能を提供できる場合があります。 変換の可用性と精度は通常、変換対象となる場所や住所によって異なります。これは、地球上の地域ごとに地図の精度が異なるためです。
QMLにおけるジオコーディングクエリは、GeocodeModel 型を使用して実行されます。住所から座標へのクエリの場合、そのquery プロパティには、Address オブジェクト、または検索対象の住所をテキスト形式で表した文字列のいずれかを設定できます。逆の変換を行う場合は、代わりに同じプロパティにgeoCoordinate を設定します。結果はモデルの内容として利用可能になります。
キーの種類
| Plugin | 位置情報サービスプラグインは、GeocodeModel を介してクライアントに公開されるジオコーディング変換結果などのデータを提供します。 |
| GeocodeModel | プラグインにジオコーディングの変換をクエリし、モデル内のインデックスを介して結果へのアクセスを提供します。 |
| Address | ジオコーディングのクエリおよび結果で使用される構造化された住所。 |
クライアントは、GeocodeModel オブジェクトを使用する前に、Plugin オブジェクトを作成する必要があることに注意してください。これにより、ジオコーディング変換サービスへのアクセスが可能になり、表示するデータが利用できるようになります。
ルート検索とナビゲーション
ルート計算とは、地図上のある地点から別の地点への通行可能な経路を決定することです。 橋や水路など、ナビゲーションを助ける、あるいは妨げる要素を認識する地図があれば、経路を構成する一連のセグメントを構築することができます。これらのrouteSegmentが単純なものである場合、セグメント間の接続点であるrouteManeuverにナビゲーション情報を追加することができます。
キーの種類
| route | ナビゲートされる経路全体。 |
| routeSegment | ルートの個々の構成要素。 |
| routeManeuver | セグメントを結びつけるナビゲーション情報。 |
| RouteModel | ルート情報を提供するためにバックエンドにリクエストを送信する手段。 |
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.