ジオトレースとジオシェープの質問では、マップ上のポリラインやポリゴンを取得できます。 このジオメトリを、ポイントの代わりにフィーチャ レイヤーに生成されるフィーチャで使用できます。
ジオポイントの質問や、場所の質問のない場所の取得とは異なり、ジオトレースとジオシェープの質問ではデバイスの場所を回答に使用しません。ただし、デバイスの場所を使用して、マップを中心に合わせます。
ジオトレースまたはジオシェープの質問が未回答のままで、デフォルトまたは式からジオメトリが作成されていない場合、調査レコードは NULL ジオメトリでフィーチャ レイヤーに送信されます。
注意:
調査には、ジオポイント、ジオトレース、またはジオシェープの質問を複数追加できますが、調査レコードのジオメトリとして使用できるのはそのうちの 1 つだけです。 1 つ以外のすべての質問の [bind::esri:fieldType] が null に設定されている場合は、複数のマップの質問を使用できます。
また、調査の個々の繰り返しにも 2 つ以上のジオポイント、ジオトレース、ジオシェープの質問が含まれることがありますが、繰り返しレコードのジオメトリとして使用できるのは、そのうちの 1 つだけです。 前述と同じ方法で、複数のマップの質問を使用できます。
マップを使用してジオトレースまたはジオシェープの質問を取得する場合、Web アプリでは Survey123 フィールド アプリの一部の機能がサポートされません。 Survey123 フィールド アプリでは以下の機能がサポートされていますが、Web アプリではサポートされていません。
- オフライン ベースマップ
- ジオトレースとジオシェープの質問で用意されているスタイル オプション
- ジオトレースとジオシェープの質問の計算 (sum() 関数を含む)。
- 位置の精度の閾値と場所の品質の式
取得の方法
ジオトレースとジオシェープのデータには、2 つの取得方法 (スケッチと頂点) があります。 最初から作成した調査では、スケッチがデフォルトで使用されます。一方、既存のフィーチャ レイヤーから作成した調査では頂点がデフォルトで使用されます。 質問の [body::esri:style] 列に「method=sketch」または「method=vertex」と入力すると、調査に対して異なる取得方法を指定できます。
スケッチ
スケッチによる方法では、単一のモーションでジオメトリが取得されます。単一ラインの描画を終了した時点で、取得が完了します。
この方法の使用方法については、「スケッチ」をご参照ください。
頂点
頂点による方法では、互いに接続される頂点を配置することで、ラインや形状をより正確にジオメトリとして取得します。
この方法の使用方法については、「頂点」をご参照ください。
頂点を取得するときの動作を制御するパラメーターには、次のようなものがあります。
- beep または nobeep - beep を設定すると、頂点が取得されるたびに音声によるフィードバックが提供されます。 このパラメーターが含まれない場合、デフォルトは nobeep になります。
- haptic または nohaptic - haptic を設定すると、頂点が取得されるたびに触覚フィードバックが提供されます。 これは触覚フィードバックをサポートするハードウェアでのみサポートされます。 このパラメーターが含まれない場合、デフォルトは nohaptic になります。
- edit または noedit - noedit を設定すると、ユーザーは、現在地の頂点を取得したり、各頂点の配置を元に戻したり、ライン全体またはポリゴン全体を置換することだけができます。 ユーザーは個々の頂点を編集できません。 このパラメーターが含まれない場合、デフォルトは edit になります。
- streaming または nostreaming - 移動すると、ラインまたはポリゴンの頂点がストリームされます。 このパラメーターが含まれない場合、デフォルトは nostreaming になります。
次の例は、取得方法を音声によるフィードバックがある頂点ストリーミングに設定します。
method=vertex,streaming,beep
調査作成者は、ストリームされた隣接する頂点間の距離を構成できます。 デフォルトでは、頂点は 10 メートルごとに取得されますが、これは distanceThreshold パラメーターを使用して変更できます。 このパラメーターは、[body::esri:style] 列でスペースで区切って指定します。 ラインまたはシェープの色を定義する他のパラメーターも含めることができます。
次の例は、25 メートルごとに頂点を取得し、赤色のラインを作成します。
method=vertex,streaming,beep distanceThreshold=25 lineColor=red
取得した頂点の位置精度が重要である場合、ジオトレースまたはジオシェープの質問の [body::accuracyThreshold] 列に精度の閾値を入力すると、閾値条件を満たさない限り、頂点は取得されなくなります。
デフォルト設定と式
ジオトレースまたはジオシェープの質問のデフォルト ジオメトリを設定するか、式を使用して、他の質問の結果をもとにジオメトリを作成できます。 ジオトレースまたはジオシェープの質問への回答を構成する個々の頂点は、スペース区切りの緯度と経度値 (10 進経緯度) のセットをセミコロンで区切ったものです。 ジオトレースまたはジオシェープの質問の回答を設定するには、この構造を厳守して、有効な回答を作成する必要があります。 正確な場所を取得するには、これらの値を大きくしなくてはならないこともあります。 たとえば、ジオシェープの質問のデフォルト列で指定されている次の値は、オーストラリアのメルボルンの公園周辺に形状を描画します。
-37.842156723211474 144.95942945338243; -37.83554486071995 144.9726235713864; -37.85681405373047 144.98240735651922; -37.85954045531896 144.97715349053766
ヒント:
場所のデフォルトが南半球にある場合、Microsoft Excel でエラーが発生します。これは、値がマイナス記号 (-) で始まっているので、値が式として読み取られるためです。 このような場合は、最初の値の前にアポストロフィを入力すると、Excel でこれが意図したとおりに読み取られます。 アポストロフィを追加しても、Survey123 での動作には何の変更もありません。
select_one の質問から設定する場合にはこれらの値を直接挿入することができないので、[calculation] 列の substr() 関数を使用して、有効な回答を構築できるようにします。 たとえば、select_one の質問の回答の名前は次のようになります。
+059.38330_+018.66300
この回答では、緯度と経度の両方に固定の文字数を使用し、通常は切詰められるゼロが含まれ、2 つの値の間にはアンダースコアが配置されます。[name] 列ではスペースの使用が許可されないからです。 これにより、substr() 関数で分解できる値が作成され、次の例のようなジオトレースの質問に 2 つの頂点を設定できるようになります。
substr(${previous_question1}, 0, 10) + " " + substr(${previous_question1}, -10) + "; " + substr(${previous_question2}, 0, 10) + " " + substr(${previous_question2}, -10)
この例では、2 つの異なる値の最初の 10 文字 (緯度) と最後の 10 文字 (経度) を使用して、スペース区切りの緯度と経度、およびセミコロン区切りの有効な場所を表します。これによって、有効なジオトレースの結果を作成します。
また、sum() 集約関数を使用してジオポイント値の数を繰り返しの中でまとめ、結果として生成されるジオトレースまたはジオシェープの頂点として使用することもできます。 これによって、ジオメトリの各頂点に対して、場所のメタデータを取得できるようになります。 詳細については、「集約関数」をご参照ください。
ジオトレースまたはジオシェープの質問では、場所は即座に捕捉されませんが、調査を読み込む際には、デバイスの場所を使用してマップを中心に合わせます。 これを回避するには、デフォルト値を null に設定します。 代わりに、場所の取得、場所を手動で設定するためのマップ ページの読み込み、質問に計算が適用される場合は計算を更新するためのオプションを表示します。
ジオサーチ
ジオトレースおよびジオシェープの質問にジオサーチ機能が含まれているため、ユーザーは対象の住所またはポイントを検索し、マップをその場所にズームして、その場所に頂点を配置できます。
デフォルトでは、ジオサーチ機能は、ArcGIS World Geocoding Service を使用して住所を検索し、世界全体から結果を返します。
結果を返すために特定のロケーターを設定するには、[bind::esri:parameters] 列にロケーターのアイテム ID を指定します (例: geocode=36ff9e8c13e042a58cfce4ad87f55d19)。 ArcGIS Online の調査で使用されるロケーターは ArcGIS Online のアイテムである必要があります。 ArcGIS Enterprise の調査で使用されるロケーターは調査と同じポータルのアイテムである必要があります。
ジオメトリ属性
ジオトレースおよびジオシェープの質問は、長さ (ジオトレース) や周囲長と面積 (ジオシェープ) などのジオメトリ属性を表示、記録する計算でも使用できます。 distance() 関数と area() 関数は、ジオトレースまたはジオシェープの質問で式を構築する場合に使われます。 distance() 関数は結果をメートルで返し、area() 関数は結果を平方メートルで返します。 これらの結果を他の単位に変換する計算の例については、Survey123 Connect のジオトレースとジオシェープのサンプルをご参照ください。
ジオメトリ シンボル
調査に表示されるジオトレースとジオシェープの質問に、スタイルを追加できます。 このスタイルは、ジオトレースとジオシェープの質問の [body::esri:style] 列にある、次のパラメーターを使用して設定します。
- lineColor
- lineWidth
- fillColor
色は、標準の HTML の色名または 16 進数の色コードで指定できます。 8 文字の 16 進数の色コードを使用して不透明度を設定できます。 複数のパラメーターはスペースで区切って指定します (lineColor=Black fillColor=#800000FF lineWidth=3 など)。
注意:
lineColor パラメーターと lineWidth パラメーターは、ジオトレースとジオシェープのどちらの質問でもサポートされます。 fillColor パラメーターをサポートするのはジオシェープの質問のみです。
これらのスタイル オプションは、Survey123 Connect および Survey123 フィールド アプリでのみ表示されます。
繰り返し内の最初のジオポイントの質問のポイント位置は調査のどのマップにも表示できます。 詳細については、「マップのポイント オーバーレイ」をご参照ください。
質問のスタイル
マップの質問ではベースマップ、マップ ツール、質問の高さを構成できます。
[body::esri:style] 列の map パラメーターを使用して、個々のマップの質問に対してデフォルトのベースマップを設定できます。 たとえば、map="World Topography" では、地形図 (World Topography) ベースマップを使用するようマップの質問を設定します。 マップのアイテム ID を使用して map パラメーターを設定することもできます (例: map=de26a3cf4cc9451298ea173c4b324736)。 自身の Web マップを含む、オンラインとオフラインのマップにこのパラメーターは対応しています。 詳細については、「調査にマップを含める」をご参照ください。
[body::esri:style] 列にmapTools パラメーターを使用して、マップの質問で使用できるマップ ツールを制御できます。 マップ ツール パラメーターが設定されていない場合、すべてのツールが表示されます。 次の値を使用できます。
- mapTools=search
- mapTools=mapSwitcher
- mapTools=zoom
- mapTools=home
- mapTools=locate
値をカンマで区切ることで複数のツールを設定できます (例: mapTools=search,locate)。
[body::esri:style] 列はマップの質問の height パラメーターを受け入れます。
質問の高さは、height パラメーターに数字 (任意で単位) を指定することで設定できます。 デフォルトの単位は lines です。これは、現在の入力テキスト フォントの高さを表します。 たとえば height=5 は、質問の高さを 5 行で表示します。
あるいは、単位を画面高さの割合やピクセル数で設定することもできます。その場合は、スペースを入れずに値への接尾辞として追加します。 たとえば、次の値はすべて受け入れられます。
- height=5
- height=5lines
- height=25%
- height=250pixels
スペースで区切ることで高さとマップ ツールを設定できます (例: height=25% mapTools=search,zoom)。