2024/07/25

作ってみよう:#6)お小遣い帳 - 現在位置から近隣の情報を取得 ①

アプリケーション作ることを主体にした企画、現在作成中の『お小遣い帳』をいよいよ Nomad アプリらしい作りこみを行います。GPS から現在位置を取得して、GoogleMAP API と連携し、近隣の情報を表示する機能を追加します。

今回の作業では、他の記事で作成した機能を流用して、組み上げます。詳細が知りたいときはそちらの記事もご確認ください。

先月リリースされたNomad iOS 1.0.40 では iOS のバージョンによっては WebAPI が動かない問題がありました。iOS の方は先日リリースされた 1.0.41 にアップデートの上お試しください。


作成する機能

まずは、スマホの GPS から現在位置の取得です。フォームを開くと下図の通り、現在位置の座標をフィールドに記録します。


ライブラリの準備

使用するのは、『HCL Nomad で GPS 座標の取得』で作成した現在位置を取得する関数 GetGPSPos_Cur 関数です。この記事では、スクリプトライブラリ lsGPS にまとめていましたので、この DB にコピペするなどして作成します。


フィールドの作成

続いて、モバイル用フォーム『m.支出』を開き、座標を表示するフィールド を作成します。

フィールド名 種類
Sch_Latitude 数値 作成時の計算結果 ""
Sch_Longitude


現在位置の取得

まずは、先ほど作成したスクリプトライブラリをフォームに組み込みます。(Globals) の (Options) でライブラリの使用を宣言します。

続いて、フォームを開いたときに、現在位置を自動で取得させます。フォームの PostOpen イベントでライブラリの関数をコールして現在位置を取得、その座標をフィールドにセットします。

記述するコードは下記の通りです。新規作成時のみ取得するよう、編集モードで、座標が空の場合のみ実行するようにしています。

Sub Postopen(Source As Notesuidocument)
   Dim nd As NotesDocument
   Dim dLat As Double
   Dim dLng As Double

   Set nd = Source.Document

   If Source.EditMode = True Then
      If nd.Sch_Latitude(0) = "" Then

         If GetGPSPos_Cur(dLat, dLng) Then
            nd.Sch_Latitude = dLat
            nd.Sch_Longitude = dLng
         End If
      End If
   End If
End Sub


ここまでできあがったら、Nomad でプリビューして現在位置が取得できているのか確認しましょう。

前回 作ってみよう 次回


0 件のコメント:

コメントを投稿