// ---------------------------------------------------
// Snippets_Ex08
// ---------------------------------------------------

/*
  この演習で使用する URL

  https://localhost/iweb/Ex08/

  ArcGIS Maps SDK for JavaScript サイト
  https://js.arcgis.com

  ESRI Elevation World の Viewshed タスク
  https://sampleserver6.arcgisonline.com/arcgis/rest/services/Elevation/ESRI_Elevation_World/GPServer/Viewshed

*/

// ---------------------------------------------------

  /*
      ステップ：ジオプロセッサの準備
  */
  const gpUrl =
  "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Elevation/ESRI_Elevation_World/GPServer/Viewshed";

// ---------------------------------------------------

  /*
    ステップ：1 つ目の入力パラメーターの準備
  */
  const featureSet = new FeatureSet({
    features: [inputPoint]
  });

// ---------------------------------------------------

  /*
    ステップ：2 つ目の入力パラメーターの準備
  */
  const vsDistance = new LinearUnit({
    distance: 5,
    units: "kilometers"
  });

// ---------------------------------------------------

  /*
    ステップ：JSON 形式のオブジェクトでジオプロセッサの入力パラメーターを作成
  */
  const gpParams = {
    Input_Observation_Point: featureSet,
    Viewshed_Distance: vsDistance
  };

// ---------------------------------------------------
 
  /*
    ステップ：ジオプロセッサの実行
  */
  geoprocessor.execute(gpUrl, gpParams, options)
    .then(drawResult, errorFunc);

// ---------------------------------------------------

  /*
    ステップ：結果からフィーチャの配列を取得
  */
  const viewshedResult = gpResults.results[0];
  const viewshedFeatureSet = viewshedResult.value;
  const viewshedFeatures = viewshedFeatureSet.features;

// ---------------------------------------------------

  /*
    ステップ：結果をループして各フィーチャにシンボルを定義して追加
  */
  const viewshedGraphics = viewshedFeatures.map((feature) => {
    feature.symbol = fillSym;
    return feature;
  });
  sceneEl.graphics.addMany(viewshedGraphics);

// ---------------------------------------------------

  /*
    ステップ：空間参照の設定
  */
  const options = {
    outSpatialReference: {
      wkid: 4326
    }
  };

// ---------------------------------------------------

  /*
    ステップ：ジオプロセッサの実行
  */
  geoprocessor.execute(gpUrl, gpParams, options)
    .then(drawResult, errorFunc);

// ---------------------------------------------------

  /*
    ステップ：ローディング パネルの表示
  */
  processLoader.style.display = "inline";

// ---------------------------------------------------

  /*
    ステップ：ローディング パネルの非表示
  */
  processLoader.style.display = "none";

// ---------------------------------------------------



// ---------------------------------------------------