注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
Map应用程序支持附加了地理空间数据的Ontology对象。
点几何可以使用geohash
属性类型来指定。geohash
属性的内容应为以下字符串之一:
[纬度],[经度]
:例如,57.64911,10.40744
。坐标必须使用WGS 84 CRS(标准纬度和经度)。u4pruydqqvj
。Geohash将被转换为点,使用Geohash矩形的左下角。具有geohash
属性的Object被索引以进行地理空间搜索。
可以通过在Object类型的功能选项卡中的地理空间部分选择半径属性来为Object类型指定圆形几何。半径属性可以是以米为单位的任何数值属性。
圆形几何仅在地图上呈现,不会被索引用于搜索。如果您需要基于圆形几何进行地理空间搜索的Object,您需要使用多边形来近似圆形。
多边形和线条几何可以使用geoshape
属性类型来指定。geoshape
属性的内容必须是符合以下要求的GeoJSON几何字符串:
geoshape
属性类型;对于点几何,请使用geohash
属性类型。以下是geoshape
属性的有效GeoJSON示例:
Copied!1 2 3 4 5
{ "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] } // 这是一个GeoJSON对象,表示一条线段 // "type"字段指定对象的类型,这里是"LineString" // "coordinates"字段包含线段的坐标数组,每个坐标是一个经度和纬度的数组
具有 geoshape
属性的对象被索引用于地理空间搜索。
对象可以包含来自 H3 地理空间索引系统 ↗ 的 H3 单元格 ID 的字符串属性。这些属性将在地图上呈现为相关的六边形。
要指定字符串属性包含 H3 单元格 ID,请在对象类型的 功能 选项卡的地理空间部分下选择该属性为 H3 单元格。
H3 六边形仅在地图上呈现,未被索引用于搜索。如果需要基于 H3 六边形进行地理空间搜索,需要将 H3 单元格 ID 转换为 GeoJSON 多边形,并如上文所述包含在 geoshape
属性中。
一个对象可以附加地理校正图像,例如卫星照片、航空影像或物理地图的扫描件。地理校正图像需要两个属性:
字符串
属性,包含要渲染的图像的 URL。支持的图像文件扩展名包括 .png
、.jpg
、.jpeg
、.gif
、.webp
、.bmp
、.ico
和 .svg
。图像 URL 属性的 ID 被用于配置图像边界属性。geoshape
属性,包含表示图像地理校正边界的四边形 GeoJSON 多边形。多边形必须按顺时针顺序指定其顶点,从左下角开始。
geo
bounds.<image URL property ID>
其中 <image URL property ID>
是图像 URL 属性的 ID。image_url
,则类型类为:类型:geo
,值:bounds.image_url
具有地理校正图像的对象被索引用于地理空间搜索,与所有 geoshape
属性一样。
地理参考光栅影像也可以通过上传 GeoTIFF 影像(.tiff
,.tif
)到媒体集中,以切片形式显示。然后,具有媒体引用属性的对象类型可以添加到地图中,并且只有当用户在地图上平移或缩放时,影像的可见部分才会被加载。
对象可以具有表示对象随时间变化的纬度和经度的数值时间序列属性,允许用户查看对象随时间移动的路径以及其在任何时间点的位置。
要为对象类型配置轨迹,请在对象类型的 功能 选项卡的 地理空间 部分选择 轨迹纬度 和 轨迹经度 属性。这两个属性必须是表示对象随时间变化位置的数值时间序列属性。更多信息请参见时间序列设置。
用户可以在地图中对具有时间序列数据和/或时间序列属性的地理空间对象进行时间和地理时间分析。
事件是发生在某个时间点或时间段的 Ontology 对象。可以通过在对象类型的 功能 选项卡的 事件 部分指定 事件开始时间 和 事件结束时间 时间戳属性来将对象类型配置为事件。
如果将事件对象添加到地图中,可以将其配置为仅在当前时间显示(即,当所选时间戳在事件期间内时)。
如果地图上的对象链接到事件对象,则事件对象可以添加到 系列 面板中进行时间分析,并且当前事件计数指示器可以添加到对象标签中。例如,一个 道路
对象可以在地图上表示为线条,并且一个 道路
对象可能链接有 交通事故
事件;然后用户可以使用指示器查看每条道路在任何时间点的交通事件计数。
为实现这一点,事件对象类型必须在对象类型的 功能 选项卡的 事件 部分配置 事件意图,以指示事件的严重性。
搜索周围是基于链接的搜索,允许用户探索相关对象。
用户可以从任何地理空间对象搜索到与其链接的任何地理空间对象。更多信息请参见创建链接类型。
地图应用程序可以运行两步搜索周围,其中一个地理空间对象通过中介对象(可以是非地理空间的)链接到另一个地理空间对象。
工厂
对象和一个 供应商
对象可能通过一个 供应合同
对象相关联;当运行搜索周围时,地图将显示从工厂到供应商的弧线,弧线代表供应合同。客户
对象可能通过一个 交付
事件链接到一个 配送中心
对象 - 在这种情况下,交付事件将显示为沿弧线移动的圆圈。圆圈的位置将根据事件的开始和结束时间以及当前选择的时间戳沿弧线进行插值。有两种方法可以配置对象用于合并链接搜索周围:
要将中介对象类型指定为始终链接合并,请在中介对象类型的 功能 选项卡的 搜索周围 部分启用 始终链接合并。这意味着对象类型本身永远不会出现在搜索周围列表中,但其传递链接会出现。
例如,如果中介对象类型是 交付
,而任一侧的对象类型是 配送中心
和 客户
,则当选择 配送中心
进行搜索周围时,交付
不会出现在列表中,但会出现 客户(通过交付)
。参见下面的示例:
要指定特定的链接遍历以进行链接合并,请在中介对象类型的 功能 选项卡的 搜索周围 部分指定要合并的 传入链接 和 传出链接。
例如,如果您希望能够从 供应商
对象类型通过 交付
对象类型执行搜索周围到 配送中心
对象类型,您将配置 交付
对象类型作为中介,选择 交付 <-> 供应商
链接为 传入链接合并,选择 交付 <-> 配送中心
链接为 传出链接合并。现在,当选择 供应商
进行搜索周围时,配送中心(通过交付)
将作为选项出现在列表中。
如果希望搜索周围列表中显示双向链接遍历(例如,既希望 供应商
有 配送中心(通过交付)
,也希望 配送中心
有 供应商(通过交付)
),则需要将这些链接配置为既是 传入链接合并 又是 传出链接合并。
您可以通过编写搜索周围函数创建强大的搜索周围。请参见搜索周围函数了解更多详细信息。
函数可用于在对象上创建派生属性。这些属性可以显示在选择面板中,并用于在地图上为对象着色。
任何接受对象数组并返回对象到原始类型的 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 26 27 28
import { Function, FunctionsMap, Double } from "@foundry/functions-api"; import { ExampleDataRoute } from "@foundry/ontology-api"; export class DerivedPropertyFunctions { @Function() public async flightCancellationPercentage(routes: ExampleDataRoute[]): Promise<FunctionsMap<ExampleDataRoute, Double>> { // 创建一个 FunctionsMap 对象用于存储每个航线的取消率 const routeMap = new FunctionsMap<ExampleDataRoute, Double>(); // 使用 Promise.all 并行获取所有航线的航班信息 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 routeMap.set(route, cancellationPercentage); } // 返回包含每个航线取消率的映射 return routeMap; } }
这个代码定义了一个 DerivedPropertyFunctions
类,其中包含一个方法 flightCancellationPercentage
,用于计算给定航线的航班取消率。使用了 TypeScript 装饰器 @Function()
来标记此方法,并返回一个 FunctionsMap
,其中包含每条航线和相应的取消率。