GeoObjectクラス
GeoObjectは、地球の3次元空間内の特定の位置に結び付けられたARObjectを表します。GeoObjectは少なくとも1つのLocationにリンクされます。
GeoObjectは、
- 少なくとも1つのLocationを持つ必要があり、Locationなしでは存在できません。
- 関連付けられたDrawableを持つことができます。これらのDrawableはカメラビュー内でGeoObjectを表現します。
- 関連付けられたトリガーを持つことができます。トリガーは特定のイベント時に発生し、関数を実行してそれらのアクションに反応します。
インスタンス生成時にLocationへの参照を渡して、ARchitect WorldでのGeoObjectの位置を定義する必要があります。
GeoObjectは有効または無効にできます(ARObject.enabledを参照)。有効なGeoObjectはカメラビューへDrawableが表示され、適切なタイミングでそのトリガーが発生します。GeoObjectが無効な場合は表示されず、トリガーも発生しません。
インスタンス生成時にパラメーターを渡して、GeoObjectのプロパティをカスタマイズできます。
// a GeoObject which is disabled per default var geoObject1 = new AR.GeoObject(geoLocation1, { enabled : false }); // now, we enable geoObject1 so it will is considered for projection. geoObject1.enabled = true;
// a GeoObject which reacts when the GeoObject becomes visible and invisible. // whenever it becomes visible, the altitude is increased by 1 meter // whenever it becomes invisible, the altitude decreases by 1 meter. var geoObject2 = new AR.GeoObject(geoLocation1); geoObject2.onEnterFieldOfVision = function() { geoObject2.locations[0].altitude++; }; geoObject2.onExitFieldOfVision = function() { geoObject2.locations[0].altitude--; };
// a GeoObject which has two locations set var geoObject3 = new AR.GeoObject( [ geoLocation1, geoLocation2 ], null);
// a GeoObject with triggers and drawables set on creation date var geoObject4 = new AR.GeoObject(locations, { //the function executed when the GeoObject enters the field of vision onEnterFieldOfVision : function(){ ... }, //the function executed when the GeoObject exits the field of vision onExitFieldOfVision : function(){ ... }, drawables : { cam : [drawable1, drawable2] //the drawables representing the GeoObject in the camera view } });
//The Drawables can also be specified as a single object: new AR.GeoObject(locations, { ... drawables : { cam : drawable1} } );
アタッチされたDrawableのレンダリングサイズについては、SDUのセクションを参照してください。
コンストラクター
GeoObject
-
location
-
options
パラメーター:
-
location
Location | Location[]このGeoObjectが位置するLocationへの参照。
-
options
Object オプション追加のオブジェクトプロパティをカスタマイズするためのパラメーター。
設定可能なプロパティは以下のとおりです。-
enabled
(デフォルト値:true
)Boolean オプション -
renderingOrder
(デフォルト値:0
)Number オプション -
onEnterFieldOfVision
Function オプション -
onExitFieldOfVision
Function オプション -
onClick
Function オプション -
onDragBegan
Function オプション -
onDragChanged
Function オプション -
onDragEnded
Function オプション -
onPanBegan
Function オプション -
onPanChanged
Function オプション -
onPanEnded
Function オプション -
onRotationBegan
Function オプション -
onRotationChanged
Function オプション -
onRotationEnded
Function オプション -
onScaleBegan
Function オプション -
onScaleChanged
Function オプション -
onScaleEnded
Function オプション -
drawables.cam
Drawable[] オプション -
drawables.radar
Drawable2D[] オプション -
drawables.indicator
Drawable2D[] オプション
-
項目索引
メソッド
メソッド
destroy
()
オブジェクトを破棄します。
drawables.addCamDrawable
-
drawable
-
position
拡張オブジェクトをARObjectに追加します。
パラメーター:
-
drawable
Drawable | Drawable[]追加する拡張オブジェクト。単一、または複数の拡張オブジェクトを配列で指定できます。
-
position
Number オプション拡張オブジェクトを追加する配列内の位置。指定しない場合は、配列の最後に追加されます。整数にする必要があります。
drawables.addIndicatorDrawable
-
drawable
-
position
方向インジケーターのDrawable2DをGeoObjectに追加します。
パラメーター:
-
drawable
Drawable2D | Drawable2D[]追加するDrawable。単一のDrawable2D、またはDrawable2Dの配列を指定できます。
-
position
Number オプションDrawable2Dを追加する配列内の位置。指定しない場合は、配列の最後にDrawable2Dが追加されます。整数にする必要があります。
drawables.addRadarDrawable
-
drawable
-
position
レーダーのDrawable2DをGeoObjectに追加します。
パラメーター:
-
drawable
Drawable2D | Array(Drawable2D)レーダーに追加するDrawable。単一のDrawable2D、またはDrawable2Dの配列を指定できます。
-
position
Int オプションDrawable2Dを追加する配列内の位置。指定しない場合は、配列の最後にDrawable2Dが追加されます。整数にする必要があります。
drawables.removeCamDrawable
-
drawable|position
拡張オブジェクトをARObjectから削除します。
パラメーター:
-
drawable|position
Drawable | [Drawable] | Number単一、または複数の拡張オブジェクトを配列で指定すると、それらが配列から削除されます。整数を指定すると、指定した位置にある拡張オブジェクトが削除されます。
drawables.removeIndicatorDrawable
-
drawable|position
方向インジケーターをGeoObjectから削除します。
パラメーター:
-
drawable|position
Drawable2D | Drawable2D[] | Int単一のDrawable2D、またはDrawable2Dの配列を指定すると、それらのDrawable2Dが配列から削除されます。整数を指定すると、指定した位置にあるDrawable2Dが削除されます。
drawables.removeRadarDrawable
-
drawable|position
レーダーのDrawable2DをGeoObjectから削除します。
パラメーター:
-
drawable|position
Drawable2D | Drawable2D[] | Int単一のDrawable2D、またはDrawable2Dの配列を指定すると、それらのDrawable2Dが配列から削除されます。整数を指定すると、指定した位置にあるDrawable2Dが削除されます。
プロパティ
drawables.cam
Drawable[]
カメラビュー内で使用される拡張オブジェクト。
拡張オブジェクトが、配列の添え字順に表示されます。順序が後の拡張オブジェクトは、先に描画された拡張オブジェクトの上に重なります。
配列の内容を[]演算子によって操作しないでください。それらの変更がアプリケーションに反映されるかどうかは保証されません。このプロパティを操作するときは、arobject.drawables.addCamDrawable()とarobject.drawables.removeCamDrawable()を使用するか、arobject.drawables.cam = new Array(...);を使用して直接設定してください。
drawables.indicator
Drawable2D[]
GeoObjectが現在画面に表示されていない場合にGeoObjectが位置する方向を示すために使用されるDrawable2D。
拡張オブジェクトが、配列の添え字順に表示されます。順序が後の拡張オブジェクトは、先に描画された拡張オブジェクトの上に重なります。
方向インジケーターは画面の端にレンダリングされ、ユーザーがデバイスを動かすと画面の端に沿って移動します。方向インジケーターでは、1 SDUは横向きの画面の幅と定義されます。したがって、幅が0.5 SDUのImageDrawableを作成した場合、それは画面の幅半分を占めます。
方向インジゲーターが画面の端に沿って移動するにつれて、そのxおよびyの向きが変わります。したがって、方向インジケーターに対するoffsetX、offsetY、rotation、scalingなどの操作について、次のように動作が定義されています。これらの操作は、方向インジケーターが画面上端の水平方向中央に位置するときに適用されます。たとえば正のoffsetYを指定すると、方向インジケーターが画面上端から離れる方向にオフセットされます。方向インジケーターが画面の端に沿って移動し、最終的に画面左端に達すると、今度は画面左端から離れる方向にオフセットされます。offsetXの設定は、方向インジケーターを左右方向にシフトさせます。
配列の内容を[]演算子によって操作しないでください。それらの変更がアプリケーションに反映されるかどうかは保証されません。このプロパティを操作するときは、geoobject.drawables.addIndicatorDrawable()とgeoobject.drawables.removeIndicatorDrawable()を使用するか、geoobject.drawables.indicator = new Array(...);を使用して直接設定してください。
方向インジケーターのクリック(Drawable.onClick)は処理されません。方向インジケーターとして使用するDrawable2Dのクリックトリガーに関数を指定することは可能ですが、その関数が呼び出されることはありません。
drawables.radar
Drawable2D[]
レーダーでARObjectを表現するために使用されるDrawable2D。これらのDrawableは、AR.radarが有効で、なおかつ有効な値によって初期化されている場合にのみ表示されます。
拡張オブジェクトが、配列の添え字順に表示されます。順序が後の拡張オブジェクトは、先に描画された拡張オブジェクトの上に重なります。
レーダーでは、1 SDUはレーダーの半径と定義されます。したがって、半径が1 SDUのCircleを作成した場合、それはレーダーのスペース全体を占めます。
配列の内容を[]演算子によって操作しないでください。それらの変更がアプリケーションに反映されるかどうかは保証されません。このプロパティを操作するときは、geoobject.drawables.addRadarDrawable()とgeoobject.drawables.removeRadarDrawable()を使用するか、geoobject.drawables.radar = new Array(...);を使用して直接設定してください。
レーダーのDrawable2Dのクリック(Drawable.onClick)は処理されません。レーダーのDrawable2Dのクリックトリガーに関数を指定することは可能ですが、その関数が呼び出されることはありません。レーダーのクリックに対するイベント処理については、AR.radar.onClick()トリガーを参照してください。
locations
Location[]
GeoObjectのLocationの配列。単一のLocationが設定されている場合は、暗黙的に要素が1つだけのLocationの配列に変換されます。したがって、以下の4つの文はすべて同じ結果になります。
geoObject = new AR.GeoObject(location); geoObject.locations = location; geoObject.locations = new Array(location); geoObject.locations = [ location ];
renderingOrder
Number
異なるARObjectの拡張オブジェクトが重なる場合があります。その場合、renderingOrderによって、そのARObject間の拡張オブジェクトのレンダリング順序が決まります。renderingOrder値の高いARObjectに属する拡張オブジェクトが、renderingOrder値の低いARObjectに属する拡張オブジェクトの前面に描画されます。2つのARObjectに同じrenderingOrderが設定されている場合、それらの拡張オブジェクトは距離に基づいてレンダリングされ、ユーザーに近い方のオブジェクトが遠い方のオブジェクトより前面に描画されます。
たとえば、特定のARObjectの拡張オブジェクトを最前面に移動する場合は、対応するARObjectのrenderingOrder値を非常に大きい値に設定します。
同じARObject内の拡張オブジェクトの描画順序については、Drawable2D.zOrderを参照してください。
整数にする必要があります。
デフォルト値: 0
イベント
onClick
ARObjectのいずれかの拡張オブジェクトがクリックされたとき、どの拡張オブジェクトのonClick()トリガーでもクリックキューが停止されない場合に実行されます。ARObject.onClick()トリガーは、すべてのDrawable.onClick()トリガーが実行された後に実行されます。
複数のARObjectがクリックされた場合、実行順序はユーザーに対するARObjectの距離によって決定され、最も近いARObjectのonClickトリガーが最初に実行されます。
onClick()トリガーの戻り値は、このARObjectのonClick()トリガーが実行された後にキューの次のARObjectのonClick()トリガーを実行するかどうかを決定します。キューの最後のARObjectがさらにクリックキューの実行を要求した場合は、context.onScreenClick()トリガーが実行されます。
このトリガーの戻り値により後続のクリックキューの処理を決定します。falseの場合、クリックキューの実行はこのARObjectで停止しません。したがって、次のARObjectのonClick()トリガーが実行されます。これは、戻り値が設定されていない場合、またはこのARObjectに対してonClick()トリガーが定義されていない場合のデフォルト値です。trueの場合、キューの実行は現在のARObjectで停止し、後続のARObjectのonClick()トリガーは実行されません。
onDragBegan
ユーザーが1本の指で1つ以上のDrawableをドラッグし始めたときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onDragChanged
ユーザーが1本の指で少なくとも1つのDrawableをドラッグすると実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onDragEnded
ユーザーが1本の指で1つ以上のDrawableをドラッグして停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onEnterFieldOfVision
このトリガーは、GeoObjectの可視/不可視状態が不可視から可視に変更されたときに発生します。
このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者はonEnterFieldOfVisionトリガーにカスタム関数を指定することで、カスタム機能を追加できます。
onExitFieldOfVision
GeoObjectの可視/不可視状態が可視から不可視に変更されたときに実行されます。
このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者はonExitFieldOfVisionトリガーにカスタム関数を指定することで、カスタム機能を追加できます。
onPanBegan
ユーザーが2本の指で1つ以上のDrawableをドラッグし始めたときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
onPanChanged
ユーザーが2本の指で少なくとも1つのDrawableをドラッグすると実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onPanEnded
ユーザーが2本の指で1つ以上のDrawableをドラッグして停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onRotationBegan
ユーザーが2本の指で少なくとも1つのDrawableの回転を開始したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
angle
Number開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。回転ジェスチャの変更が発生していない場合、onRotationBeganでは常に0です。
onRotationChanged
ユーザーが2本の指で少なくとも1つのDrawableの回転をさせたときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
angle
Number開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。
onRotationEnded
ユーザーが2本の指で少なくとも1つのDrawableの回転を停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
angle
Number開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。onRotationChangedで受け取った最新の角度と常に同じ。
onScaleBegan
ユーザーが2本の指で少なくとも1つのDrawableの拡大縮小を開始したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
scale
Number開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。 スケールジェスチャへの変更が発生していない場合、onScaleBeganは常に1です。
onScaleChanged
ユーザーが2本の指で少なくとも1つのDrawableの拡大縮小したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
scale
Number開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。
onScaleEnded
ユーザーが2本の指で少なくとも1つのDrawableの拡大縮小を停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
scale
Number開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。 onScaleChangedで受信した最新のスケールと常に同じ。