Qt Location Open Street Map プラグイン

概要

このジオサービスプラグインにより、アプリケーションは Qt Location API を使用してOpen Street Map の位置情報サービスにアクセスすることができます。

データ、画像、地図情報は、ThunderForestOpenStreetMap、および貢献者によって提供されています。データはオープンデータベースライセンスの下で利用可能です。

オープンストリートマップジオサービスプラグインは、プラグインキー "osm "を使用して読み込むことができます。

注: 標準的なマップタイプは、(部分的に)無料のデータプロバイダーに依存しています。私たちは、評価や開発目的のために有用なデータプロバイダーを選択するよう心がけていますが、実運用においてあなたのニーズに合ったデータプロバイダーを選択するのはあなたの責任です。各プロバイダーの利用規約をよく読み、遵守することを強くお勧めします。代替データプロバイダのリストはOpenStreetMap wikiにあります。このプラグインによって提供される利用可能なマップタイプは、各タイプのオープンにアクセス可能なプロバイダが実際に利用可能かどうかによって、予告なく変更される(または削除される)可能性があります。これは、HTTPSでタイルを提供するプロバイダが使用される可能性があることも意味します。これは、OSMプラグインをAndroidのような、SSLサポートがデフォルトでQtに組み込まれていないプラットフォームで使用する場合に関連してきます。このような変更を防ぐには、別のジオサービスプラグインを使用するか、プラグインパラメータの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返される Location オブジェクトに Nominatim 固有の情報 (ジオメトリやクラスなど) を含めるようにプラグインに指示します。
osm.mapping.cache.directoryネットワークディスクキャッシュとして使用されるマップタイルキャッシュディレクトリへの絶対パス。

キャッシュのデフォルトの場所は、QStandardPaths::GenericCacheLocation をパラメータとして呼び出されたQStandardPaths::writableLocation() によって返される場所のQtLocation/osm サブディレクトリです。共有キャッシュの概念がないシステムでは、代わりにアプリケーション固有のQStandardPaths::CacheLocation が使用される。

osm.mapping.cache.disk.cost_strategyマップ・タイルをディスク上にキャッシュするために使用するコスト戦略。有効な値はbytesizeunitary です。bytesizeを使用すると、関連するサイズパラメータ(osm.mapping.cache.disk.size)はバイトとして解釈されます。unitaryを使用すると、タイル数として解釈されます。このパラメータのデフォルト値はbytesizeです。
osm.mapping.cache.disk.sizeマップタイルのディスクキャッシュサイズ。キャッシュのデフォルトサイズは、bytesizeがこのキャッシュのコスト戦略の場合は50MiB、unitaryがコスト戦略の場合は1000タイルです。
osm.mapping.cache.memory.cost_strategyマップ・タイルをメモリにキャッシュするために使用するコスト戦略。有効な値はbytesizeunitary です。bytesizeを使用すると、関連するサイズ・パラメータ(osm.mapping.cache.memory.size)はバイトとして解釈されます。unitaryを使用すると、タイル数として解釈されます。このパラメータのデフォルト値はbytesizeです。
osm.mapping.cache.memory.sizeマップタイルのメモリーキャッシュサイズ。キャッシュのデフォルトサイズは、bytesizeがこのキャッシュのコスト戦略である場合は3MiB、unitaryがコスト戦略である場合は100タイルです。
osm.mapping.cache.texture.cost_strategy解凍されたマップタイルをメモリにキャッシュするために使用するコスト戦略。有効な値はbytesizeunitary です。bytesizeを使用すると、関連するサイズパラメータ(osm.mapping.cache.texture.size)はバイトとして解釈されます。unitaryを使用すると、タイル数として解釈されます。このパラメータのデフォルト値はbytesizeです。
osm.mapping.cache.texture.sizeマップタイルのテクスチャキャッシュサイズ。キャッシュのデフォルトサイズは、bytesizeがこのキャッシュのコスト戦略である場合は6MiB、unitaryがコスト戦略である場合は30タイルです。テクスチャキャッシュは、マップビューポートのサイズに依存するハード最小サイズを持っていることに注意してください(それは現在ディスプレイに表示されているタイルを表示するのに十分なデータを含んでいなければなりません)。この値は、最小値に加えて使用されるキャッシュの量です。
osm.mapping.custom.datacopyrighturlprefix パラメータでMapType.CustomMapMap::activeMapType を設定する際に使用される、カスタムデータのコピーライト文字列です。このコピーライトは上記のCustomMapを使用する場合にのみ使用されます。空の場合、カスタムマップのデータ著作権は表示されません。
osm.mapping.custom.hostカスタムタイルサーバーのURL文字列。このパラメータには正しいOSM APIを提供する有効なサーバのURLを設定する必要があります。url には postfix "%z/%x/%y.png" が追加されます。6.5以降、urlの末尾が".png "の場合、postfixは追加されません。サーバーがapikeyを必要とする場合、url文字列に追加する必要があります。このサーバを使用するには、MapMap::activeMapType パラメータを、サポートされているマップタイプに設定する必要があります (そのタイプはMapType.CustomMap です)。このマップタイプは、このプラグインパラメータが設定されている場合のみ利用可能で、その場合は常にMap::supportedMapTypes[supportedMapTypes.length - 1]となります。

注意: mapping.custom.hostパラメータを新しいサーバーに設定すると、マップタイルキャッシュは古いカスタムマップのスタイルでは使えなくなります。

osm.mapping.custom.mapcopyrightカスタムマップのコピーライト文字列は urlprefix パラメータでMap::activeMapTypeMapType.CustomMap に設定するときに使用されます。このコピーライトは上記のCustomMapを使用する場合にのみ使用されます。空の場合、カスタムマップのコピーライトは表示されません。
osm.mapping.highdpi_tiles高dpiタイルを要求するかどうか。有効な値はtrueと falseです。デフォルト値はfalseです。すべてのマップタイプが高dpiで利用できるわけではないことに注意してください。現時点で高dpiで利用可能なマップタイプがない場合、このパラメータをtrueに設定しても効果がないこともあります。高解像度タイルのプロバイダー情報ファイルは、street-hiressatellite-hirescycle-hirestransit-hiresnight-transit-hiresterrain-hireshiking-hires という名前です。これらは、低dpiタイルと同じ場所から取得されます。
osm.mapping.offline.directoryオフラインストレージとして使用されるマップタイルを含むディレクトリへの絶対パス。指定された場合、ネットワークディスクキャッシュと一緒に動作しますが、タイルは自動的に挿入、削除、更新されません。タイルのフォーマットはネットワークディスクキャッシュと同じです。デフォルト値はなく、このプロパティが設定されていない場合、ディレクトリはインデックス化されず、ネットワーク使用量を削減するため、または現在キャッシュされているタイルのオフラインストレージとして動作するために、ネットワークディスクキャッシュのみが使用されます。
osm.mapping.prefetching_styleこ のパ ラ メ タ では、 タ イルのプ リ フ ェ ッ チをエン ジ ンがど の よ う に実行す る かについて、 ヒ ン ト を与え る こ と がで き ます。OneNeighbourLayer デフ ォル ト 値TwoNeighbourLayers にする と 、 エ ン ジ ンは、 カ レ ン ト タ イル レ イ ヤーの上 と 下のレ イ ヤーの タ イルをプ リ フ ェ ッ チ し ます。最後に、NoPrefetching はプリフェッチを無効にすることができるので、 見えるタイルだけがフェッチされます。アクティブなマップタイプによっては、このヒントは無視されるかもしれないことに注意してください。
osm.mapping.providersrepository.addressOpenStreetMapプラグインはプロバイダの情報をリモートリポジトリから取得します。これは、デフォルトでハードコードされたサーバを使用し、それが利用できなくなることを防ぐために行われます。デフォルトでは、この情報はmaps-redirect.qt.io から取得されます。このパラメータを設定すると、プロバイダリポジトリのアドレスがユーザー指定のものに変更されます。プロバイダリポジトリには、streetsatellitecycletransitnight-transitterrainhiking の各ファイルが含まれ、それぞれに有効なプロバイダ情報が含まれている必要があります。
osm.mapping.providersrepository.disabledデフォルトでは、OpenStreetMapプラグインは、ハードコードされたサービスが利用できないことによるサービスの損失を避けるために、リモートリポジトリからプロバイダの情報を取得します。しかし、プラグインは、プロバイダリポジトリに到達できなくなった場合に備えて、フォールバックとしてハードコードされたプロバイダデータを含んでいます。このパラメータをtrueに設定すると、プラグインはハードコードされたURLのみを使用するようになり、リモートリポジトリからプロバイダデータを取得することができなくなります。
osm.places.debug_queryこのパラメータをtrueに設定すると、各結果に "requestUrl "という拡張属性が追加され、クエリに使用されたurlが含まれるようになります。デフォルトはfalseです。
osm.places.hostplacesサーバにネットワークリクエストを行う際に設定されるURL文字列。このパラメータには正しいOSM APIを持つ有効なサーバURLを設定する必要があります。指定しない場合はデフォルトのurlが使用されます。

注意: APIドキュメントはProject OSM Nominatimにあります。

osm.places.page_sizeページ内の検索結果の量。この値はサーバー側でクランプされる可能性があることに注意。標準的な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)。

パラメータの使用例

次の例では、ユーザーエージェントと、必要に応じてカスタムサーバーの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 が代わりに使用されます。

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。