忍者ブログ
GPS
GPS関連の話題を掲載していきます。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

やっと実験というか、シミュレーションできる段階まできたので、「指定したエリアに入ったことを知らせてみる其の1」で掲載した、あらかじめ指定エリアを決めておき、そのエリアに入ったら通知する概念を、作成したシステムに組み込み検証・課題をみてみることにします。

とりあえず、指定エリアのウェイポイントの経度、緯度を指定するボックスを画面につけますが、指定ポイントの経度、緯度を知ることは結構骨折りです。

ですので、mapにクリックした際のイベント機能を利用し、クリックした時の経度、緯度をいったん、hiddenボックスに格納し、VB上にボタンを貼り付け、そのボタンを押すことで、hiddenボックスからVBのウェイポイント用の経度、緯度ボックスに値を格納します。

本当であれば、ダイレクトに、格納されるといいのですが、WebBrowserにクリックに関するイベントがないようなので、苦肉の策といったところです。

また、ウェイポイントの位置とエリアは視覚的にわかるとよいので、クリックした位置に指定半径の円を描くようにしてみます。

これはdraw_disc関数等で実現できます。ただし、描画モードをdegにしておかないと、位置指定が画面の座標となってしまいますのでご注意ください。

実際にウェイポイントを指定しているところが以下です。

図34


Mapの適当なところにクリックすると、半径100mの円を描き、その経度、緯度をhiddenボックスに格納します。そしてVB画面のロードボタンをクリックすることで、その経度、緯度をテキストボックスに配置します。

また、今回の実験では、アラートは出さず、指定ポイントと、ログから読み取った経度、緯度との距離を出し、どうなるか検証してみたいと思い、右下にその距離を出すようにしました。一見WEBに張り付いているように見えますが、これはVBです。

WEBに貼り付けたのはなんとなく見やすいような気がしたためです・・・。

では、次回、実験を開始しましょう。

拍手[0回]

PR
ここまで、きてなんだが、あらためてGoogle MAPの利用規約を見てみると、個人の趣味といえど、いろいろ制約があるようで、このまま、ブログを続けるとまずいと思われ、Google Mapの利用は控えることにした。

とはいえ、このまま、終わりにするのももったいなので、いろいろ調べていると、国土交通省国土地理院の委託の下、財団法人日本地図センターが管理・運営している電子国土ポータルサイトの電子国土WebシステムがGoogle Mapのように利用できることがわかった。

もちろん利用規約もあるし、機能も限定的だが、これはこれでいろいろポテンシャルを秘めています。

というわけで、VBに読み込ませていた、htmlを電子国土WebシステムのAPIベースに変更しました。

さすがに、日本語マニュアルやサンプルは充実しており、結構容易に変更できました、ただ、Google Mapとは概念が大きく違うのは、レイヤー構造を結構表に出しているところです。Google Mapにもレイヤーという概念はあるのでしょうが、あまりこのへんは意識せずとも利用できていました。

これは、電子国土Webシステムをベースに独自のサービスを展開できるような配慮によるところもあるようです。

ひとまず、スクリーンショットを貼り付けときます。

図33
図1

尚、ルート検索は機能しません、Google Mapの時の名残でつけてます。

心なしか、少し、道路からはみ出る率が、Google Mapより多いような気がします。WGS84とITRFの違いなのでしょうか。

ポータルサイトには地図を作成するための様々なツールやライブラリが用意されてますので、これは必見です。

では、今日はここまで。

拍手[0回]

前回「GT-730F/Lのログデータで何かやってみる其の4」で、とりあえず、カーナビモドキのソフトが完成しました。

しかしながら、あれから、進行方向に対するマップの回転について考えており、基本マップの回転じたいはそのままでは容易ではないことがわかりました。

これは、他のライブラリ等をみつけるとして、そもそも、回転角度をどのように求めるかが非常に気になってきました。といいますのは、ロガーをレシーバとして、シリアルから直接データを取得した場合は角度もNMEAデータの中に含まれているのですが、ログデータのほうには含まれていないためです。

というわけで、何かしら角度を求めるわけですが、これは、お馴染み平面三角法で求めてみます。

すでに、平面といっている時点で、楕円体である地球とマッチングしませんが、おおまかなというところでお許しください。

まずは以下の図を見てください。

図31
図1

いたって単純ですが、図1のように、経度、緯度の2ポイントを基に、角度θを求めてみます。当然ながら、1ポイントではどうにもならないので、前回のポイントを保持しておく必要はあります。

図1から、単純にアークタンジェントを使い角度θが求まります。式的には以下になります。

数式21
数式1

ただし、以前にもいいましたが、通常ではアークタンジェントは-π/2 ~ π/2 までの値しか返しませんので、x方向の+-、y方向の+-まで加味し判断するか、言語によってはatan2のような関数が用意されており、x方向の+-、y方向の+-まで加味し、-π ~ πの値で返してくれるものがあるのでこれを利用するといいでしょう。

まあ、ここまでで、どうにか、角度θは求まるのですが、もし、まっすぐ北に進んだ場合、当然θはπ/2になりますが、まっすぐ進むだけならば、地図を回転させる必要はありません。従い、実際にはπ/2引いておく必要があります。

これで、どうにか、地図の回転角度は求められたのですが、できるならば、いろいろなライブラリに対応できるように、時計周りに、0 ~ 2π の範囲に変換したいところではあります。

とりあえず余談になりましたが、本件、ここまでとします。

拍手[0回]

[1]  [2]  [3]  [4]  [5]  [6]  [7]  [HOME]
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新コメント
最新トラックバック
プロフィール
HN:
Slit
性別:
非公開
バーコード
ブログ内検索
アクセス解析
忍者ブログ / [PR]
/ Designed by 日常のつぼ
Copyright GPS. All Rights Reserved.