デバイスの位置を追跡するアプリケーション (GPS の有効化が必要) を作成するために、
Maps 外部オブジェクトにより以下のメソッドが提供されています:
たとえば、3 つのイベント (ボタン) を使用して、以下のように
Panel オブジェクトを定義できます:
最初のボタンで追跡が開始されます:
Event 'StartTracking'
Composite
Maps.ClearLocationHistory()
Maps.StartTracking(60,100,"",0)
msg("Tracking Started")
EndComposite
EndEvent
2 つ目のボタンで追跡が終了します:
Event 'StopTracking'
Composite
Maps.EndTracking()
msg("Tracking Stoped")
EndComposite
EndEvent
3 つ目のボタンは
GetLocationHistory method を使用して位置履歴を取得します:
Event 'SetPositionsInMap'
&locationCollection = Maps.GetLocationHistory(&Today)
Endevent
取得したコレクション (&locationCollection) は
[ Control Type ] プロパティ = Maps としてグリッドに表示されます。
追跡システムはバッテリーの点で高コストになる可能性があるため、追跡処理はアプリケーションの特定のニーズに基づいて開始および終了する必要があります。
上記のメソッドでは、コントロールとデータ登録がデバイスのみから実施されます。デバイス位置の登録はデバイス自身によって中断される場合があります。たとえば、ユーザーが GPS の起動を許可していない、あるいはスマホのアプリケーションが停止しているなどの原因が考えられます。
このような場合に備えて、配送業者が集中管理する、通知機能を利用した追跡メカニズムが便利です。サーバーがデバイスにサイレント通知を送信してデバイスを起動し、デバイスが現在位置を返します。
詳細については、以下を参照してください:
ネイティブ モバイル アプリケーションのサイレント通知を使用して追跡する方法
Showcase - GeoCity: このナレッジベースでは、MotoDriverApp パネルで追跡を使用しています。
HowTo: Solve Geofencing with GeneXusMaps 外部オブジェクトから GetLocation メソッドを使用する方法