Qt Location OpenStreetMapプラグイン
概要
このジオサービスプラグインを使用すると、アプリケーションはQt Location APIを利用して、OpenStreetMapの位置情報サービスにアクセスできるようになります。
データ、画像、地図情報は、ThunderForest、OpenStreetMap、および貢献者によって提供されています。データはOpen Database License の下で利用可能です。
OpenStreetMap ジオサービスプラグインは、プラグインキー「osm」を使用して読み込むことができます。
注: 標準の地図タイプは 、(一部)無料のデータプロバイダーに依存しています。 評価や開発の目的で有用な選択肢を提供するよう努めていますが、本番環境においてニーズに合ったデータプロバイダーを選択するのはユーザーの責任となります。各プロバイダーの利用規約を注意深く読み、遵守することを強く推奨します。代替となるデータプロバイダーの一覧は、OpenStreetMapのWikiで確認できます。 このプラグインが提供する利用可能な地図タイプは、各タイプについて実際に利用可能な公開プロバイダーの有無に応じて、予告なく変更(または削除)される場合があります。これは、HTTPS経由でタイルを提供するプロバイダーが使用される可能性があることも意味します。これは、Androidなど、QtにデフォルトでSSLサポートが組み込まれていないプラットフォームでOSMプラグインを使用する場合に重要になります。 こうした変更を防ぐには、別のジオサービスプラグインを使用するか、プラグインパラメータ`osm.mapping.providersrepository.address` をユーザー指定のリポジトリに設定し、各地図タイプで使用するプロバイダーの選択を完全に制御する必要があります。 Qt 5.9.6 以降、ジオコーディングや場所情報に使用されるデフォルトの nominatim エンドポイントも、HTTPS 専用に変更されました。
パラメータ
オプションのパラメータ
次の表は、Open Street Map プラグインに渡すことができるオプションのパラメータの一覧です。
注: Qt 5.5以降、 以下のすべてのパラメータには、osm というプレフィックスを付ける必要があります。以前のバージョンでは、プレフィックスは必要ありませんでした。
| パラメータ | 説明 |
|---|---|
| osm.geocoding.host | ジオコーディングサーバーへのネットワークリクエストを行う際に設定する URL 文字列。このパラメータには、正しい OSM API を持つ有効なサーバー URL を設定する必要があります。指定しない場合は、デフォルトのURLが使用されます。 注: APIの ドキュメントは 、Project OSM Nominatimで入手可能です。 |
| osm.geocoding.debug_query | デバッグ目的で、プラグインに対し、nominatimへのクエリURLをジオコーディングの応答に埋め込むよう指示します。 |
| osm.geocoding.include_extended_data | プラグインに対し、Nominatim 固有の情報(ジオメトリやクラスなど)を、extendedAttributes として公開される返される Location オブジェクトに含めるよう指示します。 |
| osm.mapping.cache.directory | ネットワークディスクキャッシュとして使用されるマップタイルキャッシュディレクトリへの絶対パス。 キャッシュのデフォルトの場所は、QStandardPaths::GenericCacheLocation をパラメータとして指定してQStandardPaths::writableLocation()を呼び出した際に返される場所にある |
| osm.mapping.cache.disk.cost_strategy | ディスク上にマップタイルをキャッシュするために使用するコスト戦略。有効な値はbytesizeおよびunitary です。bytesize を使用する場合、関連する size パラメータ (osm.mapping.cache.disk.size) はバイト単位として解釈されます。unitary を使用する場合、タイル数として解釈されます。このパラメータのデフォルト値はbytesize です。 |
| osm.mapping.cache.disk.size | マップタイル用のディスクキャッシュサイズ。このキャッシュのコスト戦略が`bytesize`の場合、キャッシュのデフォルトサイズは 50 MiB となり、`unitary` の場合、1000 タイルとなります。 |
| osm.mapping.cache.memory.cost_strategy | メモリ内にマップタイルをキャッシュする際に使用するコスト戦略。有効な値は「bytesize」と「unitary」です。「bytesize」を使用する場合、関連するサイズパラメータ(osm.mapping.cache.memory.size)はバイト単位として解釈されます。「unitary」を使用する場合、それらはタイル数として解釈されます。このパラメータのデフォルト値は「bytesize」です。 |
| osm.mapping.cache.memory.size | マップタイル用のメモリキャッシュサイズ。このキャッシュのコスト戦略が`bytesize`の場合、キャッシュのデフォルトサイズは 3 MiB となり、`unitary` の場合、100 タイルとなります。 |
| osm.mapping.cache.texture.cost_strategy | メモリに解凍済みのマップタイルをキャッシュする際に使用するコスト戦略。 有効な値は「bytesize」と「unitary」です。「bytesize」を使用する場合、関連するサイズパラメータ(osm.mapping.cache.texture.size)はバイト単位として解釈されます。「unitary」を使用する場合、タイル数として解釈されます。このパラメータのデフォルト値は「bytesize」です。 |
| osm.mapping.cache.texture.size | マップタイル用のテクスチャキャッシュサイズ。このキャッシュのコスト戦略が`bytesize`の場合、キャッシュのデフォルトサイズは 6 MiB となり、`unitary` の場合、30 タイルとなります。 なお、テクスチャキャッシュには、マップビューポートのサイズに依存する絶対的な最小サイズがあります(ディスプレイ上に現在表示されているタイルを表示するのに十分なデータが含まれている必要があります)。この値は、その絶対的な最小サイズに加えて使用されるキャッシュの量です。 |
| osm.mapping.custom.datacopyright | urlprefixパラメータを介してMap::activeMapType をMapType.CustomMap に設定する場合、カスタムデータの著作権文字列が使用されます。この著作権表示は、上記のCustomMapを使用する場合にのみ適用されます。空の場合、カスタムマップにはデータの著作権表示は表示されません。 |
| osm.mapping.custom.host | カスタムタイルサーバーのURL文字列です。このパラメータには、正しいOSM APIを提供する有効なサーバーURLを設定する必要があります。URLには「%z/%x/%y.png」という接尾辞が追加されます。バージョン6.5以降、URLが「.png」で終わる場合は、この接尾辞は追加されません。 サーバーがAPIキーを必要とする場合は、そのキーをURL文字列に追加する必要があります。このサーバーを使用するには、Map のMap::activeMapType パラメータを、タイプがMapType.CustomMap であるサポート対象のマップタイプに設定する必要があります。このマップタイプは、このプラグインパラメータが設定されている場合にのみ利用可能であり、その場合は常にMap::supportedMapTypes[supportedMapTypes.length - 1]となります。 注: mapping.custom.host パラメータを新しいサーバーに設定すると 、古いカスタムマップスタイルではマップタイルキャッシュが使用できなくなります。 |
| osm.mapping.custom.mapcopyright | Map::activeMapType をurlprefixパラメータ経由でMapType.CustomMap に設定する場合、カスタムマップの著作権表示文字列が使用されます。この著作権表示は、上記のCustomMapを使用する場合にのみ適用されます。空の場合、カスタムマップには著作権表示が表示されません。 |
| osm.mapping.highdpi_tiles | 高解像度(High DPI)タイルをリクエストするかどうかを指定します。有効な値はtrueおよびfalse です。デフォルト値はfalse です。 すべてのマップタイプで高解像度(high dpi)が利用可能であるわけではないことにご注意ください。現時点で高解像度に対応したマップタイプがない場合、このパラメータを true に設定しても効果がない可能性があります。高解像度タイルのプロバイダ情報ファイルは、street-hires 、satellite-hires 、cycle-hires 、transit-hires 、night-transit-hires 、terrain-hires 、およびhiking-hires という名前で保存されています。これらは、低解像度版と同じ場所から取得されます。 |
| osm.mapping.offline.directory | オフラインストレージとして使用されるマップタイルを含むディレクトリへの絶対パス。指定された場合、ネットワークディスクキャッシュと連携して機能しますが、タイルの自動挿入、削除、更新は行われません。 タイルの形式は、ネットワークディスクキャッシュで使用されるものと同じです。デフォルト値はなく、このプロパティが設定されていない場合、ディレクトリはインデックス登録されず、ネットワーク使用量を削減するため、または現在キャッシュされているタイルのオフラインストレージとして機能するために、ネットワークディスクキャッシュのみが使用されます。 |
| osm.mapping.prefetching_style | このパラメータを使用すると、エンジンによるタイルのプリフェッチ実行方法に関するヒントを指定できます。デフォルト値である `TwoNeighbourLayers` を指定すると、エンジンは現在のタイルレイヤーの上層および下層のレイヤーのタイルをプリフェッチし、現在のズームレベルからズームインまたはズームアウトした際に、すぐに利用できるタイルを提供します。`OneNeighbourLayer ` を指定すると、現在のズームレベルに最も近い 1 つのレイヤーのタイルのみがプリフェッチされます。 最後に、NoPrefetching を指定するとプリフェッチを無効にでき、表示されているタイルのみが取得されるようになります。ただし、アクティブなマップタイプによっては、このヒントが無視される場合があることに注意してください。 |
| osm.mapping.providersrepository.address | OpenStreetMap プラグインは、リモートリポジトリからプロバイダーの情報を取得します。これは、デフォルトでハードコードされたサーバーを使用することを防ぐためです。ハードコードされたサーバーは利用できなくなる可能性があるためです。デフォルトでは、この情報はmaps-redirect.qt.io から取得されます。 このパラメータを設定すると、プロバイダーのリポジトリアドレスがユーザー指定のものに変更されます。指定するリポジトリには、street 、satellite 、cycle 、transit 、night-transit 、terrain 、hiking の各ファイルが含まれている必要があり、それぞれのファイルには有効なプロバイダー情報が含まれている必要があります。 |
| osm.mapping.providersrepository.disabled | デフォルトでは、OpenStreetMap プラグインは、ハードコードされたサービスが利用できないことによるサービス停止を回避するため、リモートリポジトリからプロバイダー情報を取得します。ただし、プロバイダーリポジトリにアクセスできなくなった場合に備え、プラグインには依然として代替用のハードコードされたプロバイダーデータが含まれています。 このパラメータをtrueに設定すると、プラグインはハードコードされた URL のみを使用するようになり、その結果、プラグインがリモートリポジトリからプロバイダーデータを取得することを防止します。 |
| osm.places.debug_query | このパラメータを true に設定すると、各結果に「requestUrl」という名前の拡張属性が追加され、クエリに使用された URL が格納されます。デフォルトはfalse です。 |
| osm.places.host | places サーバーへのネットワークリクエストを行う際に設定される URL 文字列です。このパラメータには、正しい OSM API を持つ有効なサーバー URL を設定する必要があります。指定がない場合は、デフォルトのURLが使用されます。 注: APIの ドキュメントは 、Project OSM Nominatim で閲覧できます。 |
| osm.places.page_size | 1ページあたりの結果数。この値はサーバー側で制限される場合があることに注意してください。標準的なNominatimインスタンスにおける一般的な最大値は50です。 |
| osm.routing.apiversion | (カスタム)OSRMサーバーのAPIバージョンを定義する文字列。有効な値はv4および v5です。デフォルトはv5です。このパラメータは、osm.routing.host が設定されており、かつOSRM v4サーバーである場合にのみ設定する必要があります。 |
| osm.routing.host | ルーティングサーバーへのネットワークリクエストを行う際に設定するURL文字列です。このパラメータには、正しいOSRM APIを持つ有効なサーバーURLを設定する必要があります。指定がない場合は、デフォルトのURLが使用されます。 注: APIの ドキュメントおよびソースコードは 、Project OSRMで入手可能です。 |
| osm.useragent | ネットワークリクエストを行う際に設定されるユーザーエージェント文字列。このパラメータには、アプリケーションを一意に識別できる値を設定する必要があります。なお、プロバイダによっては、このパラメータを設定せず、標準プラグインのユーザーエージェント(例:ジオコーディング用のNominatim)のままにしているアプリケーションをブロックする場合があることに注意してください。 |
パラメータの使用例
以下の例は、useragent パラメータ、および必要に応じてカスタムサーバー URL とタイルプロバイダーの対応する著作権情報を指定して、OSM プラグインインスタンスを作成する方法を示しています。さらに、公開されている osrm 以外のルーティングサーバーを選択することも可能です。
QML
Plugin {
name: "osm"
PluginParameter { name: "osm.useragent"; value: "My great Qt OSM application" }
PluginParameter { name: "osm.mapping.host"; value: "http://osm.tile.server.address/" }
PluginParameter { name: "osm.mapping.copyright"; value: "All mine" }
PluginParameter { name: "osm.routing.host"; value: "http://osrm.server.address/viaroute" }
PluginParameter { name: "osm.geocoding.host"; value: "http://geocoding.server.address" }
}その他のプラグイン固有の情報
タイルキャッシュ
タイルは、QStandardPaths::writableLocation (QStandardPaths::GenericCacheLocation )内のQtLocation/osm ディレクトリにキャッシュされます。共有キャッシュの概念がないシステムでは、代わりにアプリケーション固有のQStandardPaths::CacheLocation が使用されます。
© 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.