最近のアクセス:
SD Maps コントロール
スマートデバイスの Map (SD Maps) コントロールは、地図を使用してロケーションを表示し、そのロケーションとやり取りするための高度な方法を提供します。
ロケーションは Geolocation ドメイン (リンク) に基づいた項目属性または変数です。
グリッドコントロールにロケーションを追加すると、地図として表示できます。たとえば、ロケーション項目属性を使ってトランザクションに Work With for Smart Devices パターンを適用すると、List ノードを SD Map グリッドとして表示できます。
既定の WorkWithSmartDevices.List オブジェクト SD Map コントロールを使用した WorkWithSmartDevices.List オブジェクト
イメージ:15304.png イメージ:15365.png
 

コントロールを使用する前に必要な操作

デバイスでマップを表示するには (Android プラットフォームの場合)、Smart Devices ジェネレーターのプロパティ [ Androids Maps API ] を、Google Maps API v2 という値で設定する必要があります。
その後、Google マップの API キーをここから入手し、取得した値を Smart Devices ジェネレーターのプロパティ [ Android Maps API Key ] に設定します。詳細についてはこちらを参照してください。
 

コントロールの使用

たとえば、関連の WorkWithDevices<Object> インスタンスに移動し、List ノードを選択した後、レイアウトエディターでグリッドエレメントを選択し、グリッドの [ ControlType ] プロパティの値を [ SD Maps ] に設定します ( [ PropertyGeolocation ] は、不動産業者が扱う各物件 (住宅またはアパート) の場所を表す項目属性です)。 
イメージ:15366.png

プロパティ

[ Control Info ] と [ Appearance ] セクションに、SD Maps コントロールの動作を制御するプロパティがいくつかあります。
Location Attribute 各エレメントの地図を表示する Geolocation 項目属性を指定します。
Initial Zoom 地図の中央に置く地点を指定します。
• Default: すべての地点を表示します。
• Nearest point visible: 現在位置とその付近を 1 つ以上表示します。
• Radius:  [ Initial Zoom Radius Attribute ] プロパティを有効にします。
[ Initial Zoom Radius Attribute ] (/ Field 指定子)
数値タイプでなければなりません。指定した中心地点の回りに表示する最小距離 (メートル単位) を設定します。すべての方向で少なくともこの距離が表示されるよう、地図のズームレベルが調整されます。
Center 地図の中央に置く地点を指定します。
• Default: 表示内のすべてのポイントの中央の地点で中央揃えします。
• My Location: 現在のロケーションで地図を中央揃えします。
• Custom: Custom Center 項目属性を有効にして、中央の地点を指定します。
Map type コントロールで使用する地図のタイプを指定します。
• Standard: ストリートを表示します。
• Satellite: 地球の衛星画像を表示します。
• Hybrid: 衛星画像の上にストリートを表示します。
User can choose map type このプロパティが [ True ] であると、実行時に地図のタイプを選択するためのボタンが画面上に表示されます。
Pin Image このプロパティを使用して、地図上に表示するすべてのピンのピン画像として使用するナレッジベースの画像を設定できます。
このプロパティ (または、次に説明する [ Pin Image Attribute ] プロパティ) を設定しない場合、プラットフォームの既定のピン画像が使用されます。(*)
Pin Image Attribute Map コントロールでこの項目属性を設定すると、ピンごとに 1 つのピン画像を指定できます。
このプロパティを設定しない場合や項目属性を空の値にした場合、 [ Pin Image ] プロパティ (設定している場合) からピン画像が取り込まれます。 [ Pin Image ] プロパティを設定していない場合は、プラットフォームの既定のピンが使用されます。(*)
Show Navigation on Full Screen アプリケーションを全画面表示で実行している場合 (iPad のみ、[ Navigation Style ] プロパティを [ Flip under Platforms/iPad ] に設定)、このプロパティを [ False ] に設定することで、地図のナビゲーションコントロール (ナビゲーションバー、ツールバー、フィルタ) が自動的に非表示になります。既定値は True です。
Show Traffic このプロパティが True の場合、トラフィック情報を表示します。トラフィック情報は、表示されている領域のトラフィック情報をマッププロバイダーが提供する場合のみ表示されます。
Show My Location このプロパティが True の場合、現在のデバイスの位置を表示します。
Pin Show My Location また、現在位置に対しピン画像を 1 つ指定できます。このプロパティを設定しない場合や項目属性を空の値にした場合、 [ Pin Image ] プロパティ (設定している場合) からピン画像が取り込まれます。 [ Pin Image ] プロパティを設定していない場合は、プラットフォームの既定のピンが使用されます。
Rows (Grid) このプロパティが [ <default> ] の場合、限られた数のレコードがサーバーから取り込まれます: iPad は 25 レコード、iPhone は 15 レコード、Android は 10 レコード。
このプロパティが [ <unlimited> ] の場合、データ全体がサーバーから取り込まれます。
このプロパティが N の場合、データ全体が取得されますが、N を "ページサイズ" としてリクエストをページングします (つまり、各リクエストで N 行以下が返されます)。
これで完了です。
イメージ:23157.png

  • [ Show my location ] プロパティを False に設定するか、現在のロケーションを特定できない場合、動作は [ Initial Zoom Behavior ] を Show all points に設定し、 [ Center ] を Default に設定している場合と同様です。
  • Android: Google マップを Android アプリケーションで使用するには、Google から API キーを取得する必要があります。取得していない場合は、マップは表示されません。詳しくは、「Google から API キーを取得する方法」を参照してください
  • iOS: ストリートビューは、基本のコントロールでサポートされていないため利用できません。この機能が必要な場合は、Google マップなどにリンクさせる必要があります。参照: http://stackoverflow.com/a/6332475/135050
  • SDT をベースとするグリッドでは、Center 項目属性 ( [ Center ] で [ Custom ] を選択した場合) に、任意の項目属性や変数を指定でき、必ずしも SDT にあるものでなくてもかまいません。
  • (*) GeneXus X Evolution 2 Upgrade #3 以降、Android デバイスでは、デバイスの画面解像度に関係なく、同じサイズになるようにピン画像が拡大または縮小されます。ピン画像はどのようなサイズでも許容されますが、サイズが 40 x 40 の画像を使用することをお勧めします。このトピックについては、ここおよびここを参照してください。

動画

イメージ:20668.png Work With for Smart Devices – 全般および List レイアウト
イメージ:20668.png Work With for Smart Devices – Detail レイアウト










サブページ
Created: 14/09/18 03:08 by Admin Last update: 19/04/03 18:19 by Admin
カテゴリ
Powered by GXwiki 3.0