qgmap 0.1.1 リリース

ちょっと間が開きましたが、 qgmap の 0.1.1 をリリースします。 →ダウンロードページ

0.1.1 の新機能は以下のとおりです。

  •  フリーハンド地図取得範囲指定機能

これはコメント y 様から頂いたご要望で、GM_Lite で地図をダウンロードする際の取得コードを、qgmap 上で手書きで指定できるものです。

ちょっと分かりづらいので、画面で説明します。

まず、地図を取得したい範囲を画面に収まるように、移動&ズームします。
そして、「D」キーを押します。すると、以下の画面のようになります。

フリーハンド範囲指定モード
フリーハンド範囲指定モード

このモードに入ると、画面のスクロールやズームはできなくなります。
モードを抜けるにはもう一度「D」キーを押してください。

スタイラスで画面をなぞると、赤い線で範囲を指定することができます。
スタイラスを離すと、線で囲った領域が塗りつぶされます。

範囲の指定
範囲指定の様子

この様にして、取得したい領域を赤で塗りつぶした状態にしていきます。「BS」キーで無制限にアンドゥできます。

取得したい範囲を塗りつぶし終わったら、「OK」を押してください。
以下のダイアログが表示されます。

取得ズームレベル指定
保存範囲・形式指定ダイアログ

このダイアログで、取得するズームレベルの範囲を指定します。0が最詳細、19が最広域となります。
現在表示しているズームレベルも表示していますので、参考にしてください。

出力フォーマットは、シェルスクリプト形式 (down_imgs 用) と、per形式 (down_imgs.pl 用) が選べます。

指定が終わったら、OKキーを押してください。
指定した範囲の地図取得コードがクリップボードに保存されます。

メモ帳や、ZEditorなどのエディタにペーストして、お好きなファイル名で保存してください。

ZEditor にペーストした様子
ZEditor にペーストした様子

このコードを down_imgs や down_imgs.pl に貼り付けて実行することで、手書きで指定した範囲の地図を取得することができます。

 

余談になりますが、私にとってダイアログ等のGUIが鬼門のようで、この程度のダイアログなのにかなり時間がかかってしまいました ^^;
QDialog は QWindow と違って mainWidget (?) を指定できないせいか、Dialogのサイズに合ってくれなくて・・。setGeometory で固定的に配置してしまったのですが、こういうものなんでしょうか?
リサイズ時は自前で再配置しないといけないってこと?

あと、うまくダイアログが作れなくて、手抜きで Qt Designer でダイアログを作成して .ui ファイルを作成したのにその通りに表示されなくてゲンナリ・・・。
結局今回の開発にかかった時間の半分以上はダイアログまわりでした。
GUI は難しいですねぇ。

qgmap 0.1.0 リリース

お待たせしました。ようやく正式リリース版の qgmap 0.1.0 をリリースします。ダウンロードはこちらから。

アルファを取ったついでに、バージョンの付け方をx.x.xの3つに変更しました。
理由は、あっという間にメジャーバージョンが上がってしまいそうだからです あっかんべー
大した機能も無いのに 8.5 とかじゃかっこ悪いので。 0.8.5の方がしっくりくるかなと。

新規機能はほとんどありません。

  • 画面外マーカの表示方法の切り替え (Shift+Mキー)
  • ヘルプメッセージを更新
  • 画面外マーカの位置を微調整

区切りを付けるための、alpha7のブラッシュアップ版という位置付けです。

ただ、ソースはかなり大幅に変更されています。

今後改良しやすいように機能毎にクラス分けしました。
一番大きな改良が、各クラスが画像を重ね合わせていくクラス(LayeredWidget)の実装です。
初めは、Qt の Widget 配置でスライダや縮尺表示などを作っていこうと思っていたのですが、下の Widget が透けるようなアルファチャンネルを持つ透明な Widget が作れなかったため、自前で新しい描画システムを実装してしまいました。
と言ってもただ1枚のQPixmapに各々が描画していくだけですが (^^;

この改造で、画面上に表示するアイテムを増やすときのコーディングが楽になったはず。
GPSロガーの軌跡表示とかも、比較的楽に実装できるかも??

qgmap alpha7 リリース

qgmap の aplha7 をリリースします。ダウンロードページからどうぞ。
予告どおり、10/10中に間に合いました ^^;

alpha6 からの差分は以下のとおりです。

  • 中央マーカ表示機能 (「.」キーで表示ON/OFF)
    • 表示ON/OFF状態を保存
  • tera様の高速化&マーカ状態保存パッチ適用
    • スクロールの高速化
    • マーカ表示のON/OFF、表示マーカ番号の保存
  • sugerware様ご提案のクリップボード連携機能
    • Fn+C キーで現在位置・ズームレベルをクリップボードへコピー
    • Fn+V キーでクリップボードから現在位置・ズームレベルをペースト
  • 上記機能に関連して、緯度経度指定ジャンプでズームレベルを指定可能に

今回の修正は盛りだくさんです。

順番は前後しますが、まず tera 様の高速&マーカ状態保存パッチです。

以前のブログでも述べていますが、この修正でスクロールがかなり早くなります。
また、アプリ終了時のマーカのON/OFF状態、表示番号の状態を保存するようになりました。。

続いて、sugarware様ご提案のクリップボード連携機能です。
Fn+C, Fn+V で位置情報をコピー、ペーストすることができます。
この位置情報をテキストエディタに張り付けておくことで、簡単なメモとともに位置情報を管理することができるようになります。
sugerware 様はさらにアウトラインエディタ WZNotes との組み合わせることで、より便利に位置情報を管理できるのではないかと提案されています。
アウトラインエディタで階層的に位置情報をまとめることができますので、とても便利な組み合わせだと思います。うーん、このアイデアも秀逸です。

この位置情報ペースト処理を実装するに当たり、緯度経度指定ジャンプのパーサを見直しました。
この緯度経度指定ジャンプのパーサと位置情報ペースト機能のパーサは同じものを使っていますので、緯度経度指定ジャンプでもズームレベルを指定できるようになりました。

緯度,経度[,ズームレベル] 

のように指定します。ズームレベルはオプションなので今までどおり指定しなくてもOKです。

最後に、中央マーカ機能は qgmap-sample-0.0-alpha6 で中途半端にリリースしていましたが、正式に組み込みました。
ちょっとだけ改良してあって、マーカ表示機能に合わせて、アプリ終了時の表示状態を保存します。

ちょっと時間が迫っていて、乱文になってしまってごめんなさい。

最後に、今回のリリースに大きく貢献してくださった tera様、sugerware様に改めて御礼申し上げます。
ありがとうございました。そして、これからもよろしくお願いします。