この記事では、
QtQuick / QMLを使用した地図作成および地理位置情報モバイルアプリケーションの開発における主要なポイントに
焦点を
当てています。 この記事で説明する例は、
QtMobilityの LocationモジュールAPIの使用の本質と基本を理解するのに役立ちます。
記事の終わりに、いわゆる「ピンチ」で地図を表示、移動、ズームするなど、マッピングアプリケーションの基本機能を実装するために必要なコードがどれだけ少ないかが読者に明らかになります。 このジェスチャでは、Qt Quick 1.1で導入された
PinchArea要素を使用します。 ボリュームアップ/ダウンキーを使用してズームすることもできます。
さらに、Nokiaだけでなく、GoogleとOpenStreetMapのマップを使用するために必要なことも説明します。 追加のマップにアクセスするには、Qtのプラグインを使用してプロジェクトをビルドする必要があります。 マップを表示するには、
インターネット接続が必要ですが、タイルが一度ダウンロードされると、リクエストは
一時フォルダーにキャッシュされ
ます 。 キャッシュの場所とサイズはカスタマイズ可能です。
プロジェクトとプラグインのアセンブリの説明は、リーダー
に最新バージョンの
QtSDKがインストールされており、ライブラリへのすべてのシステムパスが登録されているという主張に基づいています(もちろん、これらすべてを使用する機能)。
追加のプラグイン
GoogleおよびOpenStreetMapのマップを使用するには、プラグイン付きのプロジェクトを
アーカイブの形式でダウンロードするか、
gitoriusからリポジトリを複製する必要があります。
アセンブリにQtCreatorを使用したため、経験に基づいてアセンブリを説明します。
QtCreatorでプロジェクトを開くと、彼はアセンブリ構成の構成を提案し、
「Qt Emulator」を選択してCtrl + Bを押します。
アセンブリが完了したら、別のフォルダーを作成して
/ geoservicesという名前を付け、その中に結果のライブラリーを配置します。 Qtがこのフォルダーでプラグインを検索するには、アプリケーションの実行可能ファイルの横にこのフォルダーを置くか、メイン関数で
QApplication :: addLibraryPath()を呼び出して検索パスを追加する必要があります。 拡張機能はすべて使用する準備ができているので、アプリケーションに進むことができます。
地図作成アプリケーション
だから、私たちは最終的に作成を開始します。 アプリケーションを作成するには、QtCreatorで提供される標準の
Qt Quickテンプレートを使用できます。 すべての変更はmain.qmlで行われ、このファイルを開いて、追加されたすべてを削除し、地図作成アプリケーションの作成を開始します。
最初に、もちろん、必要なモジュールを接続する必要があります。
import QtQuick 1.1
Locationモジュールでマップを表示するには、
Mapなどの素晴らしい要素があります。表示されるマップの名前でプラグインをインストールし、フォーカスを設定する必要があります。
Map { id: map z : 1
原則として、すでにアプリケーションを体験できます。イベントへの応答方法は実際にはわかりませんが、マップを表示するために他に何も必要ありません。 もちろん、機能を停止したり拡張したりすることはありません。 それで、地図に私たちの最愛の首都を見せてください。これのために、地図の中心と縮尺を設定します。
これで、ユーザーのアクションに応答する機能を追加できます。
微調整の実装から始めましょう。
そのような機能の実装全体には22行のコードが必要でしたが、悪くはありませんか?
そのため、マップの動きを認識し、キーでズームを追加する必要があります。
カードが完全に退屈しないように、Googleのスタイルでピンを追加します。
結果のアプリケーションの結果は、スクリーンショットで見ることができます:


おわりに
そのため、最小限の労力で、マッピングアプリケーションが機能し、コードの量も最小限に抑えられます。 その結果、たとえば、オフィスや店舗の住所に関する情報を表示したり、地下鉄からオフィスへのパスを表示したり、地図を表示したりする必要があるアプリケーションに埋め込むことができる要素を取得しました。 もちろん、使用例はたくさんあります。 さらに、追加のプラグインのソースコードの例を使用して、タイルの操作をサポートするマップサービス(例として
Bing )で作業を実装できます。 マップにさまざまな要素を配置するには、次のようなものがあります。
すべての
マウス要素と
イベントはマップ座標で機能します。これにより、プログラマーの変換が不要になり、要素の操作が簡単になります。 たとえば、MapCircleには
radiusなどのプロパティがあり、値をメートル単位で保存します。マップの縮尺が変更されると、円は増加または減少します。
参照資料