qgmap 開発メモ – 画面外マーカの方向

今回は画面外マーカの表示方向についてです。

今のqgmapの画面外マーカの方向は以下の図のようになっています。

 

今のqgmapの画面外マーカ
今のqgmapの画面外マーカ

 

今は、マークした位置が画面の上下左右に直線的に移動して表示できる場合は「辺」の部分にマーカを表示し、上下左右移動で表示できない場合は頂点部分に斜め方向向きのマーカを表示しています。
ですので、右辺にあるマーカの y 座標はマーカの y 座標と一致しています。

開発当初は、以下のようなものを考えていました。


開発当初のマーカの方向

画面の中心からマーカまでを直線で結んだとき、画面の端を横切った所にマーカを表示する方法です。

一応、こちらで実装したんですが、当時はまだ中央マーカ表示機能がなかったこともあり、スクロールさせたときのマーカの挙動に何となく違和感があったため、現在の方法に切り替えました。
マーカを表示させた状態でスクロールさせると違和感はないんですが。

個人的な感覚での、それぞれの特徴をまとめると以下のようになります。

  • 前者の方法
    • 中央マーカなしの時のスクロール時の挙動が自然
    • マーカとの距離がある程度離れているとき、必ずしも正確に方向を表示しない
  • 後者の方法
    • 中央マーかなしの時のスクロール時の挙動がなんとなく不自然
    • マーカとの距離が離れていても、正しい方向を指し示す。

 

一応、後者の方向で実装したパッケージも作成しましたので、どちらがいいかご意見を伺いたいと思います。

パッケージ名や実行ファイルなど名前を変更しているので、オリジナルの qgmap と共存することが可能です。
また、「.」キーでの中央マーカ表示も実装していますので、中央マーカ表示/非表示でスクロールさせてみて、画面外マーカの挙動がしっくりくるかも試していただけると幸いです。

慣れの問題だとはおもうので、どちらでも一緒かもしれませんが・・・。

qgmap alpha6 リリース

qgmap の alpha6 をリリースします。ダウンロードページからダウンロードしてください。

今回の主な修正は、以下のとおりです。

  • y様からご指摘のあった、ズームレベル 0 の画像が表示できないバグの修正
  • tera 様からご要望があった、マーカー表示機能の実装
  • Hキー or ? キーでヘルプ表示
  • 緯度経度指定ジャンプで数値の前後のスペースを許容

1つ目はダウンロードページのコメント欄に y様からご指摘があったものです。(コメントに気づかず失礼しました。)
私の勘違いでズームレベル 1が最精細だと思っていた ^^; のが原因です。(お恥ずかしい・・・)
この修正でズーム0も表示できるるようになりました。

次は tera 様からご要望があった、マーカー表示機能です。 alpha 6 の目玉機能です(?)。
Shift+0~9のキーで位置を登録できますが、「M」キーを押すと、その登録した位置にマーカーを表示することができます。

マーカー表示機能
マーカー表示機能

縮小した図では分かりにくいですが、0〜9のマーカーが表示されています。画面外に位置するマーカーは、画面の端で方向を指し示します。上記スクリーンショットでは、1, 2, 3, 4, 5, 9 のマーカーが画面外になっています。

ちょっと分かりにくいですかね?? 見づらいとか、分かりづらいとかあればコメントください。できるだけ使いやすくしたいと思います。

マーカーをすべて表示すると、若干重たくなるのと、画面がゴチャゴチャするため、個別に表示・非表示を選べるようにしました。
「M」キーを押した後、左上にツールチップが表示されている間(3秒間)に「0」〜「9」キーを押すことで、個別にON/OFFを選べます。
やはりマーカ表示数が少ないと軽くなるようです。

ただ、上記機能のためツールチップが出ている間は「0」〜「9」の位置にジャンプできないことになります。
ツールチップが消えるまで待てない場合は、「Q」キーを押すことでツールチップが表示されていても、本来の「0」〜「9」キーの挙動に戻すことができます。(ちょっとややこしいですね ^^;)

3番目は、ヘルプ表示機能です。機能が増えてきたので、自分のために作りました照れる
「H」キーまたは「?」キーでヘルプを表示できます。いずれかのキー押下か、画面のタップで消えます。
いずれスタイラスでもヘルプ表示できるように、「?」アイコンでも画面上に作ろうかなと思っています。

最後は、ヘボかった緯度経度パーサをちょっとだけいじりました。数値の前後や、カンマの前後にスペースが入っていても正しくパースできるはずです。

なりふり構わずに機能追加してきたので、そろそろソースを見直して 0.1 をリリースしたいなと思ってはいるんですが・・・。
たぶん次も alpha っぽい気がします あっかんべー

GM_Lite の地図レシピ

qgmapの開発に平行して、GM_Liteで地図をダウンロードする時のレシピを作れないかなと考え中。

ネットを徘徊していると、自分で範囲を指定して地図ダウンロードしてるひとを見かけないので、東京都の地図はこれをコピペすればOKみたいに、必要な地図を選んで down_img.pl にコピペして実行できるようにすると便利かなと。

で、とりあえず東京都を各ズームレベル毎に切り出してみたんだけど、これが結構手間叫ぶ。広域の間はいいけど、詳細地図になると県境を追いかけるのが面倒。これを全県分手作業でやると思うと気が遠くなる・・・。

大雑把に切り出してしまえばいいんだけど、そうすると詳細地図になるにしたがって余分な領域もダウンロードしてしまうわけで、貧乏性な私は少しでも地図データを小さくしたいと思ってしまう。

なんとか自動で切り出せないかなぁ。日本地図の大陸部分のマスクデータがあれば(さらに欲を言えば各県のマスクデータがあれば)その部分の地図のみダウンロードすればいいんだけど、そんなマニアックなものがそうそう都合良く転がっているワケはない。

で、どうにかして、日本地図の輪郭のみの白紙地図みたいなものはないかと色々探してみると、 DCLライブラリに日本の海岸線と県境のデータが入っているらしいのと、カビパン男と私 – 日本の白地図にSVG形式で白地図データがあるのを発見。

DCLライブラリの方は緯度・経度のデータになっているようなので、自分でゴニョゴニョするには都合が良さそうだ。

日本の白地図の方は国土地理院のデータ(?)を元にSVGで書かれていて、緯度経度からSVG上への変換式も書かれている。しかも、各県毎にオブジェクトが分かれているらしい。これは使いやすそうだ。でもSVGって使ったことないんだよなぁ。
あと、元はフリーハンドで書き写したものらしく、ズレや歪みが無いかが心配かな。

どっちのデータもGoogleMapの地図と重ね合わせてズレがないか確認しないといけないな。

こんなことしてる間に1県ずつ手作業で切り出した方が早かったりして・・・あっかんべー

qgmap alpha5 リリース

qgmap alpha5 をリリースします。→ダウンロードページ

今回の変更は以下の2つです。この修正により、常用が現実的になったと思います。

  • 位置の保存・復元
  • 緯度経度指定ジャンプ機能

まず、位置の保存・復元機能ですが、「Shift」+「0」~「9」キーで現在表示している緯度経度とズームレベルを保存できるようになりました。保存した位置は「0」〜「9」キーでジャンプすることができます。

また、「0」に保存した位置は特別で、アプリの初期表示位置になります。今までは起動すると神奈川県近辺が表示されていたため、その他の地域の方々にはいちいちスクロールする必要があり、常用は厳しかったと思います。この機能で自宅近辺を「0」に登録することでかなり使いやすくなったと思います。

もう一つはtera様からご要望があった、緯度・経度指定ジャンプ機能です。「J」キーを押すことでダイアログが開き、緯度・経度を入力できます。


緯度経度入力ダイアログ

緯度,経度の順に入力してください。今はまだパーサが貧弱なので、","の前後等にスペースが入っていると解釈できませんあっかんべー。スペースは一切入れずに連続して入力してください。

緯度経度の表記は、度.分.秒表記(12.34.56)と、度表記(12.3456)のどちらも入力可能です。ただ、"."の数でどちらの形式かを判断していますので、度.分.秒表記の場合は、秒まで入力してください。

  • 12.34 → 12.34 度と判断
  • 12.34.0 → 12度34分と判断

以上の修正で、一応地図として最低限使えるモノになったかなと思います。

あともうちょっと修正したらソースを整理してalphaを取ろうかなと思います。

qgmap ダウンロードページ作成

qgmapのダウンロードページを作りました。Topから Download でも行けます。

ちまちま作っていっているため、使い方や機能などがいろんなページに散乱してしまっている状態でしたので、1つのページにまとめました。あと、最新版がどこか探すのもたい編かなと思いまして。

使い方も今のところ初期リリース時のコピペですが、徐々に整備していこうと思います。