最近のアクセス:
Geolocation - 現在地を表示

注意: Maps 外部オブジェクトは Geolocation 外部オブジェクトより新しいオブジェクトです。これらの外部オブジェクトが提供するメソッドとプロパティの多くは類似しています。両者の違いは、Maps 外部オブジェクトGeography データタイプを使用しているのに対し、Geolocation 外部オブジェクトが Geolocation ドメイン (非推奨) を使用していることに起因します。さらに、Maps 外部オブジェクトにはより多くの機能が含まれています。Maps 外部オブジェクトと Geography データタイプを使用することを強く推奨します。したがって、この機能の扱いについては、「Maps 外部オブジェクトから GetLocation メソッドを使用する方法」を参照してください。

毎日多くの郵便物を配達する郵便局員は、現在位置に基づいて、近くの配達先を知る必要があります。
この目的のために、トランザクションを作成して、作成されるテーブルに郵便局のすべての要件が格納されるようにします。さらに、ネイティブ モバイル アプリケーションで、地図上に配達先 (Maps コントロールタイプを使用) および現在位置 (GeoLocation 外部オブジェクトの GetMyLocation メソッドを使用) を表示します。
次に、この実装に必要な 4 つの手順について詳しく説明します。4 つの手順を詳細に確認して、この実装を実行してください。

1. PostOffice トランザクションの作成

最初に、郵便局のすべての要件を格納するために使用される Transaction オブジェクト を作成します。 
POReqId *    // Numeric(10,00) Autonumber property = True
POREqAddress // Character(500): 住所または説明
POReqLoc            // Geolocation: Latitude, Longitude
POReqDeliver        // Boolean
PoReqPin            // Image: アイコン画像  

2. Menu オブジェクトおよび WorkWithdevicesPostOffice に基づく Entry パネル (WWPostNear) の作成

Work With パターンを適用して (WorkWithDevicesPostOffice が作成される)、次を設定します:
  • List/Grid/Control Type = Maps
  • List/Grid/Location Attribute = POReqLoc
  • List/Grid/Pin Image Attribute = POReqPin
イメージ:16435.png
Menu オブジェクトを作成して、WorkWithDevicesPostOffice アイテムを追加します。(詳しくは、「Work With パターンの適用」を参照してください。)

3. 自分の位置の取得およびデータベースへの格納

WorkWithDevicesPostOffice の List オブジェクトに "GetMyLoc" アクションを作成して、GetMyLocation メソッドを呼び出します。 
アクションを作成するには、 [ リスト ] ノードをクリックして [ イベント ] に移動し、"追加" アクションボタン (GetMyLoc) を選択します。GetMyLocation メソッドを呼び出すには、 [ イベント ] に移動して、次のコードを記述します:
Event 'GetMyloc'
    &GetMyLocation = Geolocation.GetMyLocation(0,0,false)
EndEvent
// ここで: 
//     &GetMyLocation は GeoLocationInfo データタイプに基づいており、
//     Geolocation は変数ではなく、外部オブジェクトの静的な参照です。
注: GetMyLocation メソッドは、デバイス側で実行されるので、アクションから呼び出す必要があります。プロシージャーから呼び出すことはできません。
ネストされたアクションを作成し、ここから、データベースに “自分の位置” を格納するプロシージャーを呼び出します (ネストされたアクションを同時にトリガーするために、Composite コマンド節を使用する必要があります)。このアクションは、上述の GetMyLocation メソッドを呼び出した結果である、GeoLocationInfo パラメーターを設定します。サンプルコードは次のようになります:
Event 'GetMyloc' 
    Composite
         &GetMyLocation = Geolocation.GetMyLocation(0,0,false) 
         StoreMyLocation(&GetMyLocation)
    EndComposite
EndEvent 
StoreMyLocation プロシージャーのサンプルコードは次のようになります:
parm(&GetMyLocation); //重要: パラメーターの名前は、呼び出されるメソッドと同じである必要があります。

new
    POReqAddress = 'ここにいます'
    POReqLoc = &GetMyLocation.Location
    POReqDeliver = false
    PoReqPin.FromImage(here)
endnew
データをリフレッシュするためのネストされたアクションを作成します。記述するコードは、次のようになります: SD Actions.Refresh()

最終的に、次のようになります:
イメージ:16436.png 
実行中は、次のようになります: 
 
イメージ:16439.png
 
これらの例の完全なナレッジベースは、こちらから利用できます。

参考情報

Geolocation - 付近を表示
Geolocation - 現在地を表示
Geolocation 外部オブジェクト

  

サブページ
Created: 14/09/18 03:09 by Admin Last update: 24/12/18 00:25 by Admin
カテゴリ
Powered by GXwiki 3.0