前回は GPS から現在位置を取得する作業を行いました。今回はその座標を使って近隣の情報を GoogleMAP から取得します。
ライブラリの準備
GoogleMAP から情報を取得するプログラムは、別の連載『クラス化に挑戦』の第 6 回 ~ 第 13 回で作成した lsGoogleMAP スクリプトライブラリです。このライブラリを「お小遣い帳」DB にコピペします。
※ この記事を書いていて『#7)Google マップ - Place API の結果をクラス化 ②』 のプログラム内にバグを見つけました(リンク先の記事は修正済みです)。ご注意ください。
エージェントの作成
現在位置から近隣を検索する機能を作成します。他のフォームからの利用を考えてエージェントとして作成します。名称は「NearBySearch_Google」、「エージェントリストの選択」で対象は「なし」を指定します。
続いて、ライブラリを組み込み GoogleMAP に接続する準備をします。
最寄りの場所情報の取得
まずはライブラリ組み込みの確認を行います。とりあえず、現在位置から一番近い場所情報を GoogleMAP から取得します。これがうまく動作すれば組み込み成功ということですね。
|
Sub Initialize Dim nuiw As New NotesUIWorkspace Dim nuid As NotesUIDocument Dim nd As NotesDocument Dim oLoc As Location Dim oSch As NearBySearch Dim oPlace As Place Set nuid = nuiw.CurrentDocument Set nd = nuid.Document Set oLoc = New Location(nd.Sch_Latitude(0), nd.Sch_Longitude(0)) Set oSch = New NearBySearch(oLoc) Call oSch.Search() MsgBox CStr(oSch.Count) & "件、見つかりました。" If oSch.Count > 0 Then Set oPlace = oSch.GetPlace_Nth(1) nd.Vendor = oPlace.PlaceName End If End Sub |
現在の文書から現在位置を読み込み座標(Location インスタンス)を作成します。その座標をもとに NearBySearch を行い、一番近い場所の名称を Vendor フィールドにセットしています。
検索ボタンの作成
エージェントができたらフォームに検索を実行するボタン[近隣]を作成します。シンプルアクションで今回作成したエージェントを実行するだけの設定です。
なお、このボタンは、編集モードの場合だけ表示するようにしておくとよいでしょう。
フォームを保存したらテストします。正しく動作すると、最も近隣の情報が表示されます。
次回の予告
最寄りの情報一つでは必要な情報が得られないですね。次回は、検索結果の中から選択する機能を作成します。
Notes クライアントでテストする場合
テストするたびに Nomad を使用して GPS 座標の取得が手間な場合は、座標のフィールドに初期値をセットするようしてください。前回作成した GPS の現在位置取得はフィールドが空の場合のみ実行しますので、初期値を与えると停止します。
| 前回 | 作ってみよう | 次回 |





0 件のコメント:
コメントを投稿