qgmap 今後の開発予定

ようやく正式版の 0.1.0 をリリースできました。
これもひとえにtera様、y様、sugarware様を初め、他にも qgmap を使っていただいている方々のおかげです。
振り返って見ると、alpha1からちょうど1ヶ月位経つんですね。この1ヶ月でかなり qgmap も私も成長させていただきました。
改めて深く感謝申し上げます。ありがとうございました。

さて、一区切りついた qgmap ですが、まだまだ機能拡張は続ける予定です。
0.1.0 でクラス構成を大きく変更したおかげで、今までの地図画面に重ねて何かを表示することが簡単にできるようになりました。そのため、GPSの軌跡表示や、y様のご提案にあった、フリーハンドで範囲指定して GM_Lite の地図取得コードを出力するような機能が比較的容易に実装できるようになりました。

今のところ考えている機能は以下のとおりです。

  • フリーハンド地図取得範囲指定機能
  • 起動/終了時に自動的に gml_mount を実行
  • 「?」アイコン表示
  • PHS位置取得対応
  • GPS位置取得対応
  • 住所検索対応

ちょっと面白そうという個人的興味で、フリーハンド地図取得範囲指定機能を先に実装しようかなと思っています。
ちまちま作っていきますので、長い目で見守ってください。
これからもよろしくお願いします。

最近めっきり進捗の無い地図レシピも進めないとな・・・(^^;

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 開発メモ – 0.1 リリースへ向けて

まだまだ足りない所も多いものの、機能的にだいぶ充実してきて最低限常用できるアプリになってきたので、そろそろ 0.1 リリースに向けてソースを整理しようかなと。

今まではとにかく動くことを第一に、なりふり構わず機能追加してきたので、コード的に綺麗じゃないのでこの辺を直したいな。

特に、GMapクラスがすべての機能を抱えすぎていて肥大化しているので、それぞれの機能毎にクラスを分けたい。
C++というか、オブジェクト指向自体が初心者なので、綺麗なクラス分けとかどうすればいいのか分からないけど、今が汚いのは分かるので、自分なりに綺麗なコードにして 0.1 のリリースにしたいなと。

ということで、今日は丸一日既存コードのリファクタリングだ! ひとりハッカソン的なノリで。

alpha7 から 0.1 への変更点の予定は以下のとおり。

  • ヘルプ表示の更新
    Fn+Cとかが載ってない・・・
  • 画面外マーカ表示モードの切り替え
  • あまりに遠いマーカは非表示に
    数画面以上離れているマーカは非表示でもいいかも  (teraさんのコメントを参考に)
  • ソフトウェア構造の一新!

さすがに今日中リリースは無理だな (^^;
連休明けくらいにはリリースできればいいな。

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様に改めて御礼申し上げます。
ありがとうございました。そして、これからもよろしくお願いします。

qgmap 開発メモ – クリップボードの操作方法&高速化パッチ

ここ数日、皆様にとても有用なご意見を頂き、なんかとても楽しく嬉しいです笑顔

自分の頭だけでは思いつかないような、目からウロコないろいろな考えが聞けると、知的欲求が満たされてゾクゾクするような、なんかいままで死んでいだ脳細胞が生き返るような(?)、そんな感覚になって嬉しくなってしまいます。

そんなちょっとハイな気分に乗って一気に実装しちゃおうと思います。

まず、sugarware様のコメントにあった、クリップボード経由の緯度経度のやりとりについて。
エディタと組み合わせるという発想が秀逸。私にはこの発想はありませんでした。

Qt/Eでクリップボードはどうやって扱うものかをググってみたところ、LinuZau Tool Box Wikiにそのものずばりのソースコードが載っていました。
なるほど、QApplication経由でクリップボードへ読み書きできると。Qtopia Referenceではここ

ふむふむ。これで実装はできそうです。QClipboardクラスには dataChanged() シグナルがあるから、クリップボード監視も出きるのか。何かに使えそう。

あと感動したのが、tera様のパッチ。いや、これにはほんとビビりました。
パッチを当てるとスクロールが体感で2倍位軽くなります。ほんとスムーズ!
あまりにスムーズなので、画像読み込みのタイミングの引っかかりがあからさまに目立つようになるくらい (^^;

いやー。すばらしい。是非ともこれらを組み込んだ qgmap をリリースしたいですね。
今日中リリースを目標に頑張ります!笑う