注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
関数は、オブジェクトの派生プロパティを作成するために使用できます。これらはオブジェクトビューに表示され、拡張ノードラベルに表示され、またレイヤースタイリングオプションでノードの色付けに使用できます。
以下の基準を満たす関数は派生プロパティとして使用できます。
public
であること。@Functions()
デコレーターが使用されていること。FunctionMap
のすべてのキーがオブジェクトであること。FunctionsMap
のすべての値がプリミティブか、各フィールドがプリミティブのカスタムタイプであること。例:
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
import { Function, FunctionsMap, Double } from "@foundry/functions-api"; import { ExampleDataRoute } from "@foundry/ontology-api"; export class VertexDerivedPropertyFunctions { // フライトのキャンセル率を計算する関数 @Function() public async flightCancellationPercentage(routes: ExampleDataRoute[]): Promise<FunctionsMap<ExampleDataRoute, Double>> { const routeMap = new FunctionsMap<ExampleDataRoute, Double>(); // すべてのフライト情報を取得 const allFlights = await Promise.all(routes.map(route => route.flights.allAsync())); for (let i = 0; i < routes.length; i++) { const route = routes[i]; const flights = allFlights[i]; // キャンセルされたフライトを抽出 const cancelledFlights = flights.filter(flight => flight.cancelled); // キャンセル率を計算 const cancellationPercentage = (cancelledFlights.length / flights.length) * 100; routeMap.set(route, cancellationPercentage); } return routeMap; } }