注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Map アプリケーションは、地理空間データが添付されたオントロジー オブジェクトをサポートしています。
ポイントのジオメトリは、geohash
プロパティタイプを使用して指定できます。geohash
プロパティの内容は、以下のどちらかの文字列である必要があります。
[緯度],[経度]
: 例えば、57.64911,10.40744
。座標は、WGS 84 CRS(標準の緯度と経度)を使用する必要があります。u4pruydqqvj
。ジオハッシュは、ジオハッシュの矩形の左下隅を使用してポイントに変換されます。geohash
プロパティを持つオブジェクトは、地理空間検索のためにインデックスされます。
オブジェクトタイプで円のジオメトリを指定するには、オブジェクトタイプの Capabilities タブの Geospatial セクションで Radius プロパティを選択します。半径プロパティは、メートル単位で測定された任意の数値プロパティであることができます。
円のジオメトリは、マップ上にのみ描画され、検索のためにインデックスされません。 円のジオメトリに基づいてオブジェクトを地理空間検索可能にする必要がある場合は、ポリゴンを使用して円を近似する必要があります。
ポリゴンとラインのジオメトリは、geoshape
プロパティタイプを使用して指定できます。geoshape
プロパティの内容は、次の要件を満たす GeoJSON ジオメトリ文字列である必要があります。
geoshape
プロパティタイプを使用しないでください。Point ジオメトリには、geohash
プロパティタイプを使用してください。これは、geoshape
プロパティに有効な GeoJSON の例です。
Copied!1 2 3 4
{ "type": "LineString", // "type"はジオメトリの種類を指定する。ここでは"LineString"(直線)を指定している。 "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] // "coordinates"は座標を指定する。この場合、2点間の直線を示している。 }
geoshape
プロパティを持つオブジェクトは、地理空間検索のためにインデックス化されます。
オブジェクトには、H3 地理空間インデックスシステムからの H3 セル ID を含む文字列プロパティが含まれている場合があります。これらは、マップ上で該当するヘキサゴンとして描画されます。
文字列プロパティが H3 セル ID を含むことを指定するには、オブジェクトタイプの Capabilities タブの地理空間セクションで、そのプロパティを H3 cell の下で選択します。
H3 ヘキサゴンはマップ上でのみレンダリングされ、検索のためにはインデックス化されません。H3 ヘキサゴンに基づいてオブジェクトが地理空間検索可能である必要がある場合、H3 セル ID を GeoJSON ポリゴンに変換し、それを上記で説明したように geoshape
プロパティに含める必要があります。
オブジェクトには、衛星写真、航空画像、または物理マップのスキャンなどの地理矯正画像が添付されている場合があります。地理矯正画像には以下の2つのプロパティが必要です:
String
プロパティ。サポートされている画像ファイル拡張子には、.png
、.jpg
、.jpeg
、.gif
、.webp
、.bmp
、.ico
、.svg
があります。画像 URL プロパティの ID は、画像境界プロパティを設定するために使用されます。geoshape
プロパティ。ポリゴンは、左下の角から始まる時計回りの順序で頂点を指定する必要があります。
geo
bounds.<画像 URL プロパティ ID>
ここで <画像 URL プロパティ ID>
は画像 URL プロパティの ID です。image_url
の場合、タイプクラスは次のようになります:種類: geo
, 値: bounds.image_url
地理矯正画像を持つオブジェクトは、すべての geoshape
プロパティと同様に地理空間検索のためにインデックス化されます。
地理参照ラスター画像も、GeoTIFF 画像(.tiff
、.tif
)をメディアセットにアップロードすることでタイル表示することができます。そこから、メディア参照プロパティを持つオブジェクトタイプをマップに追加し、ユーザーがマップをパンまたはズームすると、見える画像の部分だけが読み込まれます。
オブジェクトには、オブジェクトの緯度と経度を表す数値の時系列プロパティがあり、ユーザーはオブジェクトが時間とともに移動した経路と、任意の時点での位置を視覚化することができます。
オブジェクトタイプのトラックを設定するには、オブジェクトタイプの Capabilities タブの Geospatial セクションで、Track Latitude と Track Longitude のプロパティを選択します。両方のプロパティは、時間とともにオブジェクトの位置を表す数値の時系列プロパティでなければなりません。詳細については、Time series setupを参照してください。
ユーザーは、時系列データと/または時系列プロパティを持つ地理空間オブジェクトのマップで、時間的および地理時間的な分析を実行することができます。
イベントは、一点または一定期間に発生するオントロジーオブジェクトです。オブジェクトタイプは、オブジェクトタイプの Capabilities タブの Event セクションで Event start time と Event end time タイムスタンププロパティを指定することにより、イベントとして設定することができます。
イベントオブジェクトがマップに追加されると、現在の時刻(つまり、選択されたタイムスタンプがイベント期間内であるとき)のみ表示されるように設定できます。
マップ上のオブジェクトにイベントオブジェクトがリンクされている場合、イベントオブジェクトを Series パネルに追加して時間的な分析を行ったり、現在のイベント数の指標をオブジェクトラベルに追加したりできます。例えば、road
オブジェクトはマップ上の線として表現でき、road
オブジェクトはリンクされた traffic accident
イベントを持つ可能性があります。ユーザーはその後、指標を使用して、任意の時点での各道路の交通事故数を見ることができます。
これが可能になるためには、イベントオブジェクトタイプは、オブジェクトタイプの Capabilities タブの Event セクションでイベントの深刻度を示す Event intent を設定する必要があります。
Search Around は、関連するオブジェクトを探索するためのリンクベースの検索です。
ユーザーは、任意の地理空間オブジェクトからそれにリンクされている任意の地理空間オブジェクトへ Search Around を行うことができます。詳細については、リンクタイプの作成を参照してください。
Map アプリケーションは、二段階の Search Around を実行することができます。ここで、地理空間オブジェクトが、中間オブジェクト(非地理空間の可能性もあります)を介して別の地理空間オブジェクトにリンクされています。
Factory
オブジェクトと Supplier
オブジェクトは、Supply Contract
オブジェクトを介して関連しているかもしれません。Search Around が実行されると、マップは工場から供給者への弧を表示します。この弧は供給契約を表します。Customer
オブジェクトは Distribution Center
オブジェクトに Delivery
イベントを介してリンクされているかもしれません。この場合、配送イベントは、弧に沿って移動する円として表示されます。円の位置は、イベントの開始時間と終了時間、および現在選択されているタイムスタンプに基づいて弧に沿って補間されます。リンクマージされた Search Around を使用するためのオブジェクトを設定する方法は2つあります:
中間オブジェクトタイプを常にリンクマージするように指定するには、中間オブジェクトタイプの Capabilities タブの Search Around セクションで Link merge always をオンにします。これは、オブジェクトタイプ自体が Search Around リストに表示されず、その推移リンクのみが表示されることを意味します。
例えば、中間オブジェクトタイプが Delivery
で、一方のオブジェクトタイプが Distribution Center
で、他方のオブジェクトタイプが Customer
の場合、Distribution Center
が Search Around の対象として選択されたとき、Delivery
はリストに表示されませんが、Customer (via Delivery)
は表示されます。以下に例を示します:
特定のリンクトラバーサルをリンクマージするように指定するには、中間オブジェクトタイプの Capabilities タブの Search Around セクションで Incoming links to merge と Outgoing links to merge を指定します。
例えば、Supplier
オブジェクトタイプから Distribution Center
オブジェクトタイプへ Delivery
オブジェクトタイプを経由して Search Around を行いたい場合は、Delivery
オブジェクトタイプを中間オブジェクトとして設定し、Delivery <-> Supplier
リンクを Incoming links to merge として選択し、Delivery <-> Distribution Center
リンクを Outgoing links to merge として選択します。これで、Supplier
が Search Around の対象として選択されたとき、リストのオプションとして Distribution Centers (via Delivery)
が表示されます。
Search Around リストに両方のリンクトラバーサル方向が表示されるようにしたい場合(例えば、Suppliers
に Distribution Centers (via Delivery)
があり、また Distribution Centers
に Suppliers (via Delivery)
がある場合)、それらのリンクを Incoming links to merge と Outgoing links to merge の両方として設定する必要があります。
Search Around 関数を作成することで、強力な Search Around を作成できます。詳細については、Search Around functionsを参照してください。
関数は、オブジェクト上の derived properties を作成するために使用できます。これらは Selection パネルに表示され、マップ上のオブジェクトの色付けに使用できます。
オブジェクトの配列を入力とし、オブジェクトから原始的なものへの FunctionsMap
を返す任意の関数は derived property として使用できます。例えば:
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 26 27 28 29 30 31 32
import { Function, FunctionsMap, Double } from "@foundry/functions-api"; import { ExampleDataRoute } from "@foundry/ontology-api"; // DerivedPropertyFunctions クラスを定義 export class DerivedPropertyFunctions { // flightCancellationPercentage 関数を定義 // フライトのキャンセル率を計算します。 @Function() public async flightCancellationPercentage(routes: ExampleDataRoute[]): Promise<FunctionsMap<ExampleDataRoute, Double>> { // routeMap を作成し、関数の結果を格納します。 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); // キャンセル率を計算します(キャンセルされたフライトの数 / 全フライト数)* 100 const cancellationPercentage = (cancelledFlights.length / flights.length) * 100; // 計算結果を routeMap に保存します。 routeMap.set(route, cancellationPercentage); } // routeMap を返します。 return routeMap; } }