Experience Builderに6つのNear Meウィジェットがあり、Selectウィジェットでトリガーされます。ユーザーがSelectウィジェットで区画を選択すると、6つのNear Meが起動し、それぞれ異なる距離内のさまざまなレイヤーを検索します。
その後、Textウィジェット内のArcadeスクリプトにすべてのNear Me出力データソースが接続されており、結果をきれいなリストにまとめています。6つのNear Meを連結しているため、少し長くなり、ユーザーにとっては結果があまり見やすくありません。依頼としては、これらの結果を他者と共有することが多いため、単純にコピー&ペーストできるものが欲しいということでした。
問題は、古い結果を保持してしまうことです。例えば、一度実行して1つのSpecies at Riskエリアが返された後、その近くにSpecies at Riskエリアがない区画で再度実行すると、その1つの結果がまだ残っています。前回の検索になかった新しいレイヤーや更新されたフィーチャ数についてはリストに正しく反映されますが、以前見つかって現在は見つからないレイヤーに問題があります。
これは新しい問題で、1年前にスクリプトを作成した時には見られませんでした。最近ツールに新しいレイヤーを追加した際にこの問題に気づきました。新しいレイヤーを削除しても問題は解消せず、新旧どちらでも発生しています。Near Meウィジェットには私が設定した後に追加された設定もあるようなので、何か調整が必要なのか、それともレイヤー呼び出し時に参照すべき別のプロファイルがあるのか分かりません。
ご助言やご意見をいただけると幸いです!
以下にスクリーンショットとコードを示します。
最初の実行ではすべて期待通り動作します:
2回目の実行では、最初の実行で表示された400m以内のフィーチャ近くにはもうありませんが、それらは引き続き表示されます。新しい項目は期待通り追加され、前回リストにあったレイヤーはカウントも正しく更新されています:
// 出力を保持する空の変数
var output = "";
// Near Meウィジェット内の出力レイヤー一覧
var layers = [
// 交差するもの
{name: "Propane RSMP (intersecting)", ds: "widget_545_output_proximity_7844902899039525-output"},
{name: "KRCA Regulated Areas (intersecting)", ds: "widget_545_output_proximity_7968463111736579-output"},
{name: "ORCA Regulated Area (intersecting)", ds: "widget_545_output_proximity_9598497442304497-output"},
{name: "Noise Exposure Forecast (intersecting)", ds: "widget_545_output_proximity_08644733937223714-output"},
{name: "Clean Water Act Policies Apply (intersecting)", ds: "widget_545_output_proximity_18102019944760728-output"},
{name: "ORCA Floodplain (intersecting)", ds: "widget_545_output_proximity_6147625999696148-output"},
{name: "ORCA Lake High Water Level (intersecting)", ds: "widget_545_output_proximity_8184674839954809-output"},
{name: "KRCA Floodplain (intersecting)", ds: "widget_545_output_proximity_26042425009594083-output"},
{name: "Oak Ridges Moraine Land Use Designation (intersecting)", ds: "widget_545_output_proximity_035943006449194126-output"},
{name: "Area of High Mineral Potential (intersecting)", ds: "widget_545_output_proximity_5789448905263223-output"},
{name: "Wintering Area (intersecting)", ds: "widget_545_output_proximity_5954101991213211-output"},
// 120m以内
{name: "Peterborough Proposed Bypass (within 120m)", ds: "widget_544_output_proximity_8750538018314757-output"},
{name: "Areas of Natural and Scientific Interest (ANSI) (within 120m)", ds: "widget_544_output_proximity_2642195208116723-output"},
{name: "Spawning Area (within 120m)", ds: "widget_544_output_proximity_9555566998953181-output"},
{name: "Species at Risk Areas (within 120m)", ds: "widget_544_output_proximity_24353840154442263-output"},
{name: "Species at Risk Observations (within 120m)", ds: "widget_544_output_proximity_7010013464426786-output"},
{name: "King's Highway (within 120m)", ds: "widget_544_output_proximity_6057019457101002-output"},
{name: "Evaluated-Provincial Wetlands (within 120m)", ds: "widget_544_output_proximity_6816526860263106-output"},
{name: "Evaluated-Other Wetlands (within 120m)", ds: "widget_544_output_proximity_007184386039725488-output"},
{name: "Non-Evaluated Wetlands (within 120m)", ds: "widget_544_output_proximity_602167485573717-output"},
{name: "Cemetery Data (within 120m)", ds: "widget_544_output_proximity_6850263073775575-output"},
{name: "Waterbody (within 120m)", ds: "widget_544_output_proximity_7204693750133947-output"},
{name: "Watercourse (within 120m)", ds: "widget_544_output_proximity_7919740128394555-output"},
{name: "Woodlands (within 120m)", ds: "widget_544_output_proximity_3919084483159394-output"},
// 300m以内
{name: "Aggregate Sand and Gravel (within 300m)", ds: "widget_546_output_proximity_6767129073346421-output"},
{name: "Karst (within 300m)", ds: "widget_546_output_proximity_9203990105672937-output"},
{name: "Lake Sensitivity (within 300m)", ds: "widget_546_output_proximity_3502717978959833-output"},
{name: "Aggregate (Pit) (within 300m)", ds: "widget_546_output_proximity_21222536163466876-output"},
{name: "Archaeological Sites - CONFIDENTIAL (within 300m)", ds: "widget_546_output_proximity_018261958119917487-output"},
{name: "Railway (within 300m)", ds: "widget_546_output_proximity_936438734203539-output"},
// 400m以内
{name: "Buildings and Lands (within 400m)", ds: "widget_570_output_proximity_7844902899039525-output"},
{name: "Encroachment (within 400m)", ds: "widget__570outputproximity7232271423020573output"},
{name: "Power Pole Transmission (within 400m)", ds: "widget_570_output_proximity_5042122413876593-output"},
{name: "Signs (within 400m)", ds: "widget_570_output_proximity_6695595499849716-output"},
{name: "Major Traffic Generator (within 400m)", ds: "widget_570_output_proximity_2693141622377604-output"},
// Within 500m
{name: "Aggregate (Pit/Quarry) (within 500m)", ds: "widget_551_output_proximity_9757872224346482-output"},
// Within 1000m
{name: "Petroleum Well (within 1000m)", ds: "widget_744_output_proximity_18734428093124356-output"},
{name: "Abandoned Mines (within 1000m)", ds: "widget_744_output_proximity_9999940247389159-output"}
];
// Count features and build summary
for (var i in layers) {
var dsid = layers[i].ds; // Get ID of data source
var layerName = layers[i].name; // Get name of layer
var ds = $dataSources[dsid]; // Connect to actual data source
var countFeatures = Count(ds.layer); // Get count of features
// Check if count is greater than 0, if it is, add it to the list
if (countFeatures > 0) {
if (output != "") {
output += TextFormatting.NewLine;
}
output += "(" + countFeatures + ") " + layerName;
}
}
return output;