クロスプラットフォームライブラリとAPI
Qt Creator IDEと生産性向上ツール
UI compositionのためのUIデザインツール
受託開発、トレーニング、サポート等
組み込み向けユーセージ分析
Qtは、UIデザインやソフトウェア開発から品質保証、展開に至るまで、製品開発ライフサイクル全体で生産性を向上させます。あなたのニーズに最も適したソリューションを見つけてください。
最新のリソースを入手し、今後のイベントを確認しましょう。
理想的な学習リソースを見つけたり、コミュニティと交流したりして、Qtのスキルを向上させましょう。
初心者であろうとベテランのQtプロであろうと、成功するために必要なサポートと助けがすべて揃っています。
4月 05, 2017 by 鈴木 佑 | Comments
この記事は The Qt Blog の Provisioning OpenStreetMap providers in QtLocation を翻訳したものです。
執筆: Paolo Angelelli, 2017年3月9日
この記事は Qt 5.6.2 の QtLocation の OpenStreetMap プラグインに対して行った振る舞いに関わる変更を明らかにするためのものです。これらの変更には紛らわしい側面もあったため、改めて説明したいとおもいます。
この OSM プラグインにはタイル用のサーバーの URL がハードコードされていて、その中に含まれる様々なタイプの地図が利用できるようになっていました。利用頻度の高いメインの(道路)地図と衛星地図のタイルは元々はは open.mapquest.com から取得していました。2016年7月に、MapQuest がこのサービスを 廃止した ため、世の中の Qt 5.6.1 以前と 5.7.0 の QtLocation の OSM プラグインを利用した地図は、以下のような MapQuest のウェブサイトとサービスの購入のお知らせのタイルが表示されるようになってしまいました。
また同じような状況に陥らないように、ワンクッション挟むようにこの問題を修正することにしました。OSM プラグインを地図のタイプのためのプロバイダーの定義ファイルを maps-redirect.qt.io から取得するように変更しました。このファイルの形式は一般的に用いられる形式(TileJSON など)にかなり近いもので、Qt 用に特別な拡張をしています。具体的なフォーマットについては こちらのファイル(の195行目あたり)に記載がされています。これにより地図のタイプに応じたタイルのソースの変更が可能になり、もし同じような対応が必要になっても、Qt のアップデートやアプリケーションのビルドをしなおす必要がなくなりました。
これらのプロバイダーはサーバー側で Enabled プロパティを false に設定することで一時的に無効化することもできるようになっています。前述のようにあるサービスが本物以外のタイルを提供したりその代替が見つからない際に利用するかもしれません。このプラグインにはネットワーク的に繋がらない場合に備えてバックアップ用の情報がハードコードされています。
残念ながら現時点では良い解像度の衛星画像をオープンに提供しているサービスが見つけられていません。このため、OSM プラグインは最初は(衛星画像も含めた)7つのタイプの地図を提供していますが、ネットワーク経由でプロバイダーの定義ファイルを取得しパースする処理が完了した後は6つに減ります。
以下のスクリーンショットで違いを確認してください。
このアプローチで今回直面した問題は解決できましたが、これが必ずしも望ましい解決方法ではない場合もありえるでしょう。そういった場合に備えて、これを無効化する方法を二つ用意してあります。1つ目はプラグインの osm.mapping.providersrepository.disabled パラメーターを true に設定することです。これにより、プラグインはネットワーク経由でプロバイダーの情報を取得せずに、ハードコードされた情報のみを利用します。この手法だけでは当初の問題が解決できないため、もう一つのパラメーターを用意しました。osm.mapping.providersrepository.address はデフォルトの URL、5.6.2 と 5.7.1 向けの http://maps-redirect.qt.io/osm/5.6/と 5.8.0 以降向けの http://maps-redirect.qt.io/osm/5.8/ を上書きするためのパラメーターです。street, satellite, cycle, transit, night-transit, terrain, hiking に対応するプロバイダーの定義がかかれているファイルを用意し、参照する URL に書き換えることが可能です。URL を file:/// や qrc:/ にすることでローカルのファイルの使用も可能になるので、定義ファイルをアプリケーションにバンドルして配布することも可能になっています。
最後に、この方法でも100%はフェイルセーフではないことを心に留めておいてください。地図サービスは The Qt Company とは契約関係にないサードバーティによって提供されているものです。もっと確かな方法が必要な場合は様々なプラグインの中から我々がサポートが可能な商用サービス向けのプラグインを検討してみてください。
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
11 5, 2024
本稿は「Feedback Wanted: What does a unified Qt Hub look like to you?」の抄訳です。..
9 24, 2024
本稿は「Qt Gradle Plugin 1.0 Released」の抄訳です。 Qt Gradle Plugin 1.0 (QtGP) ビルド..
9 17, 2024
本稿は「Qt Tools for Android Studio 3.0 Released」の抄訳です。 Qt Tools for Android..
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.