斯潘8
斯潘4
有各种限制区,多个终端,时间限制,导航机场对任何人都是一个挑战。乘客,特别地,需要快速高效地到达目的地。苹果的室内地图计划可以帮助乘客导航大型机场综合设施,但要添加此类地图,需要将数据转换为苹果的室内地图数据格式。(IMDF)
在这种情况下,您将了解如何将维多利亚机场(ESRI地理数据库)的地图数据转换为IMDF。在这个例子的最后,您将执行数据转换步骤,以生成一个准备发布到苹果地图的数据集。
注:此示例显示如何处理来自维多利亚机场的数据。您自己的源数据可能在结构和格式上有所不同,因此需要不同的转换技术。
失效模式与影响2018.1+
已安装python
atb-publicdata.zip文件数据为)维多利亚机场管理局
中级FME技能水平
了解IMDF规范
提供的数据包含在三个不同的地理数据库中,机场每层一个。这些地理数据库包含整个机场结构的数据。因为我们只对机场的布局图感兴趣,以及重要功能(如安全区,登记柜台,以及行李传送带)我们可以减少我们阅读的特征类型(特征类)的数量。
我们感兴趣的功能类型有:
处理前在FME数据检查器中查看的上述特征类型
这个场景尽可能详细,同时保持可读性。要进一步了解每个变压器的特定参数,请参阅已完成的工作区。
源数据概述下列出的功能类型已使用文件geodatabase(文件geodb open api)读卡器添加到工作区。对于某些功能类型,它只有一个实例(即ATB-U环绕)对于其他人,有两个或三个;这是因为这些功能存在于多个楼层。
在准备写入IMDF之前,需要清除每个功能类型。清洁包括地理参考,清洁几何结构,创建ID,以及操作属性。以下部分将详细说明为每种功能类型完成的步骤。
亚搏在线ATB_环绕的数据清理工作流
建筑ID是根据ATB U环绕数据创建的。采样器选择单个环绕特征,UuidGenerator创建ID,variablesetter创建一个名为building的变量,并给它id值。
这个变量在整个工作区中被引用。如果稍后在工作区中使用带有功能缓存的运行,确保variablesetter是任何部分运行的一部分,否则,工作区将失败。
在ID变量创建的独立流上,溶解器用于将周围区域溶解为单个多边形。然后,使用DonutholeExtractor,从建筑中创建的甜甜圈孔将被移除。最后,数据通过applygeoReferencing自定义转换器运行,该转换器旋转,偏移量,缩放并设置坐标系。此自定义转换器将在整个工作区中多次使用。
在ApplygeoReferencing自定义转换器中,参数为:
ATB U环绕的前后数据清理。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线安全/安全线路数据清理工作流程
第一,使用弧击变压器将弧几何转换为线,然后用几何滤波器对几何图形进行压缩。下一步,该除泥器用于破碎集料线并封闭小间隙。捕捉器和闭线器的组合用于将线组合成一条线,每层一个。最后,使用applygeoReferencing自定义转换器对数据进行地理引用。
安全/安保线路的前后数据清理。粉红线是一楼的安全线,紫色线是二楼的。三楼没有安全线。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线用于打开数据清理的工作流
开场白,最初,所有需要做的是,所有三个楼层的开口都需要使用适用的定制变压器进行地理参考。
亚搏在线建筑/墙多边形和建筑/房间的数据清理工作流
所有三种建筑/墙多边形特征类型都连接到一个属性创建器转换器,以创建具有结构值的类别属性。然后使用applygeoReferencing自定义转换器对其进行地理引用。下一步,几何图形使用Arcstroker组合进行清理,分解器,几何定义器,和Snapper。然后使用区域间隙和重叠清洁剂和另一个分解器清除所有间隙或重叠。使用空间滤波器和测试仪,任何单独的墙壁或非公共区域都会被过滤掉。
使用取样器组合为每个房间创建另一个变量,Uuid发电机,以及变阻器变压器。此变量使用了fme_basename值,这是机场的高度(ATB1,ATB2和ATB3)。在第二个数据流中,attributeValueMapper用于压缩房间(单元)类别基于notes属性。房间类型如下:
在属性值管理器之后,数据通过applygeoReferencing自定义转换器连接到建筑/墙多边形工作流。亚搏在线
建筑前/墙多边形和建筑前/房间数据清理以及合并多边形后数据清理。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线架构/计数器的数据清理工作流
柜台是机场每个值机柜台的详细图纸。每个人都需要他们居住的房间的属性,最好使用简化的几何图形。第一,几何量角器变压器记录原始(详细)数据的副本,然后使用CenterPointReplacer为每个计数器创建一个简单的中心点。下一步,使用空间过滤器,房间属性合并到每个登记柜台上。几何置换器用于从几何拉伸器中检索存储的几何图形。
VertexCounter和AggregateFilter用于对数据进行排序以进行筛选。然后使用testfilter按以下方式筛选数据:
一旦数据被过滤,使用attributeCreator为testfilter上的每个输出端口创建一个新类别。
登记亭和移民服务台都被发送到一个名为makepolygon的自定义转换器,它使用多个几何变换器生成多边形。值机柜台和安全设备被发送到BoundingBoxReplacer,以将几何图形简化为矩形。最后,使用applygeoReferencing自定义转换器对计数器进行地理引用。
亚搏在线建筑/传送带的数据清理工作流
测试变压器仅用于从所有不同的传送带功能中提取行李提取传送带。然后使用attributeCreator创建类别和名称。然后使用Arcstroker,鲷鱼,和区域建设者,为每个传送带创建多边形。传送带被路由到与计数器工作流连接的同一个applygeoReferencing自定义转换器。亚搏在线最后,中央传送带用于国际和国内行李,根据一个固定的时间表,需要添加此信息。AreaBuilder_2还连接到建筑/公共设施数据清理工作流以添加此计划信息。亚搏在线
建筑/计数器和建筑/传送带的前后数据清理。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线架构/公共设施的数据清理工作流
中央行李提取区,通过移动墙在国内和国际之间切换。维多利亚机场提供了转盘使用时间表。
为了建立模型,为组合式旋转木马设计了两个便利设施:一个供家庭使用,另一个供国际使用。日程安排是为每种使用类型提供适当的便利设施。
attributekeeper只保留行李传送带名称和fme_basename属性。然后,PointOnAreaOverlayer用于在行李传送带多边形上覆盖行李传送带便利设施并合并属性。测试仪用于查找组合的国际/国内传送带。然后使用attributeCreator设置国内日程。一个剪纸器用于创建第二个便利设施,以包含国际日程,它是使用attributeCreator创建的。最后,所有建筑/公共设施特征类型都使用ApplygeoReferencing自定义转换器进行地理参考。
使用锚定器,安全线,打开,建筑/柜台和建筑/旋转木马都被合在一起。建筑/墙多边形和建筑/房间特征是其他数据捕捉到的定位点。这将把安全线和固定装置扣到装置上。
然后用按扣,使用分段捕捉将安全顶点捕捉到单元边界。所有多边形功能之间的公共顶点可确保在导航应用程序中查看数据时以及在写入IMDF时将数据重新投影到纬度/经度时,数据以可视方式对齐。
在基址图关闭的情况下查看的捕捉特征
使用按扣,安全顶点将使用分段捕捉捕捉捕捉到单元边界。捕捉器之后,然后使用FeatureTypeFilter将这些特性过滤回各自的类型。
一旦数据干净了,在编写之前,需要根据IMDF规范进行准备。这意味着需要向每个功能添加唯一的ID,几何类型必须正确,所有属性都遵循适当的命名约定。写入IMDF时,FME编写器自动将数据重新投影到LL84坐标系。
由于以下章节的复杂性,过程描述可以参考尚未提及的特征类型和变压器。为了清楚起见,建议在阅读时打开示例工作区。
亚搏在线准备向IMDF写出场地的工作流程
这个地点 包含建筑的边界,必须具有ID并且必须是多边形。
为了创造场地,使用UuidGenerator创建唯一ID。然后使用attributeCreator创建关于场地的特定属性。这些属性包括建筑物的名称,类别,网站,备用名称,小时和电话号码。设置类别时,必须遵循特定的命名约定。查看苹果室内地图数据格式单元类别文档更多信息。
下一步,使用FeatureMerger将地址_ID合并到场地ID中。然后使用CenterPointextractor,创建一个中心点。然后使用室内地图数据格式(IMDF)编写器编写场地。
在FME数据检查员中查看的场地输出。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线准备写出地址并构建到IMDF的工作流
这个地址是必须具有ID且必须具有空几何体的邮政地址。
要创建地址,使用UuidGenerator创建唯一的地址_id。然后地址“id”被重命名为id,使用属性名称,这是为了与场馆ID合并。下一步,地址属性是用attributeCreator创建的,包括街道地址,地点(城市或城镇名称)省(州)国家,和邮政编码(或邮政编码)。然后把地址写给同一个IMDF编写器,作为场地。通过转到“编写器>添加功能类型”,然后在“功能类型”对话框中将功能类型名称重命名为“地址”,并确保选择了IMDF编写器,可以轻松完成此操作。
在FME数据检查器中查看的地址输出
这个建筑是包含在场地内的物理建筑,必须具有ID并且必须具有空几何图形。此功能类型仅存储属性信息,实际建筑多边形存储在示意图要素类型中。
使用之前创建的地址\u id,属性创建器用于创建建筑名称和类别。然后使用变量检索器,建筑物ID,它是用ATB ound创建的,已检索。使用CenterPointextractor转换器创建中心点,它将作为一个属性存储,然后使用同一个编写器将建筑写出给IMDF。
在FME数据检查器中查看的建筑物输出
亚搏在线准备向IMDF写入级别的工作流
这个水平表示建筑的每个级别(或楼层)。级别必须具有ID并且必须是多边形。
从FeatureTypeFilter,使用溶解器将所有单元溶解成水平;在这种情况下,创建三个级别。然后使用两个可变检索器,将检索级别ID和建筑ID。使用StringSearcher,从fme_basename中提取级别号;这是因为每个初始地理数据库都代表一个级别(atb1,ATB2ATB3)。
属性创建器用于创建特定于每个级别的属性,这包括类别,是否在室外(是/否)序数,级别名称和短名称。然后提取中心点,将空名称和短名称属性映射到
在FME数据检查器中查看的级别的输出。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线准备向IMDF写出足迹的工作流
这个足迹 是建筑物的近似多边形。示意图必须具有ID并且必须是多边形。
连接到创建级别属性的attributeCreator,属性移动器用于删除级别名称。然后使用testfilter,级别按顺序组织(空中,地面和地下)。连接到天线和地面输出端口的分解器用于将级别分解为足迹。然后,使用油炸圈拔取器删除创建的所有油炸圈孔。然后使用一个属性创建者来给脚印提供航空的类别。
下一步,一个attributeCreator连接到testfilter上的接地输出端口,以向封装外形提供接地类别。
最后,另一个溶解器,Donuthole提取器,和attributeCreator连接到testfilter上的地下输出端口,脚印是地下的一种。
然后,所有三个属性创建器都连接到一个UuidGenerator以创建一个封装外形\u id,然后写给IMDF。
在FME数据检查器中查看的足迹输出。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线准备向IMDF写入地理围栏的工作流
一地理围栏通过设置限制分隔一个或多个区域。如果是机场,这将是前后安全措施。地理围栏必须具有ID并且必须是多边形。
交叉转换器连接到创建级别属性的attributeCreator,该属性用于通过安全线分隔单元。然后,一个区域生成器用于为安全线任一侧的每个级别创建新的多边形。然后使用geometryextactor保存几何体;这样做是为了在不影响几何体的情况下操纵属性并将其与其他属性合并。CenterPointReplacer用于创建包含每个多边形的所有属性的单个点。然后,使用裁剪器裁剪该点,以使新多边形保持在级别内。一个leftrightspacecalculator用于确定每个多边形落在安全线的哪一边,这是按fme_basename分组的,因此它使每个级别保持独立。使用ListSearcher对多边形进行分类;如果多边形在直线的右侧,它是预先安全的,如果在左边,这是邮政安全。然后使用attributeCreators设置类别。
最后,几何置换器用于恢复多边形,然后使用attributereMover删除任何特定于级别的属性。使用两个可变检索器检索ID,并使用UuidGenerator创建地理围栏ID。创建一个中心点,然后将地理围栏写入IMDF。
在FME数据检查器中查看的地理围栏输出。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线准备向IMDF写出开口的工作流
安开放表示房间或建筑的入口,可以是门或门槛。开口必须具有ID,并且必须具有作为几何图形的线字符串。
要创建洞口,UuidGenerator连接到FeatureTypeFilter,然后连接一个变量检索器来创建和检索ID。几何取样器连接到产生水平的溶解器;这用于强制打开行的级别边界。然后将一个空间滤波器连接到几何控制器和可变检索器,以在水平边界上找到开口;这将决定开口是内部的还是外部的。然后,使用两个attributeCreator来创建pedestrian(内部)或pedestrian.principal(外部)的类别。然后计算出中点作为显示点;这是通过使用几何量角器来实现的,狙击手,坐标量角器和几何代替器。创建显示点后,空名称属性设置为
在FME数据检查器中查看的打开输出。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线准备向IMDF写出单元的工作流
一单元表示房间或走廊,是封闭空间。一个单元必须有一个ID,并且必须是一个多边形。
UuidGenerator用于创建ID,并连接到FeatureTypeFilter。然后使用attributeCreator创建一个名为_predicate的属性,该属性将在spacerelator中使用;这与用于创建洞口的变量检索器相连。空间中继连接到UuidGenerator和attributeCreator,并使用谓词属性测试关系。变量检索器用于获取级别ID。另一个attributeCreator用于将notes属性复制到名为name的属性;这将是每个单元的名称。创建一个中心点,空名称属性设置为
在FME数据检查器中查看的机组输出。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线准备编写便利设施并锚定到IMDF的工作流
安舒适是一个提供便利服务的功能,如洗手间或饮水机。便利设施必须有一个ID和一个点几何。
使用UuidGenerator创建便利设施ID,然后将便利设施覆盖在单元顶部,以使用PointOnAreaOverlayer获取单元ID。姓名,然后使用attributeCreator创建类别和单位ID属性。空名称属性设置为
在FME数据检查器中查看的便利性输出。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
安锚是用于显示特定地址或不可寻址位置的指定点。定位点用作另一个功能可以继承定位点属性的点。
锚遵循与便利性相同的工作流,除了测试人员用于测试亚搏在线类别。任何未指定的便利设施,服务,餐饮服务,或角叉被认为是锚。
在FME数据检查器中查看锚点的输出。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线准备向IMDF写出占用者的工作流程
安居住者提供商品或服务的企业所在地。这些乘客由锚代表。
一旦确定锚定,将重命名并创建唯一ID,然后使用attributeValueMapper将属性重新映射到特定的IMDF类别。databasejoiner用于将包含业务信息的csv文件与锚合并以创建占用者。创建一个包含数据有效性的属性。修改日期,然后将空属性映射到
在FME数据检查员中查看的乘员输出
亚搏在线准备向IMDF写出部分的工作流
一部分是为特定目的服务的区域。例如,机场会有行李领取处,值机区,大门和安全区。节必须具有ID并且必须是多边形。
一个attributeValueMapper连接到FeatureTypeFilter以将单元重新映射到一个区段类别,对于这个例子,这些是:
一旦名称重新映射,检测仪用于删除任何没有节类别的单元。然后,使用溶解器为每个部分创建一个多边形来溶解具有一个部分的单元的边界。然后使用UuidGenerator和VariableRetriever创建和检索ID。使用CenterpointReplacer和DonutholeExtractor创建一个中心点并删除所有多边形孔。最后,空名称属性设置为
在FME数据检查器中查看的部分的输出。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
亚搏在线准备向IMDF写出夹具的工作流
一固定装置表示包含在可以移动或半永久的单元中的物理对象。对于这个例子,这代表行李传送带或登记柜台。设备必须具有ID并且必须是多边形。
通过使用另一个FeatureTypeFilter来分离转盘和计数器,在FeatureTypeFilter之后再次过滤设备。测试仪用于确定夹具是非公共的还是结构的。然后用剪刀剪出任何非公共的传送带部件。然后创建和检索ID,以及创建一个中心点。一旦空名称属性重命名为
在FME数据检查器中查看的夹具输出。背景图平铺方式雄蕊设计,在下面抄送3.0.数据依据开放式街道地图,在下面ODBL.
一关系是两个映射元素之间的关联,可选择包含中间元素。在这个例子中,这是一部电梯,楼梯或自动扶梯,连接多个层次。此外,增加了一个横向关系来定义当中央行李传送带在国际或国内之间切换时可以移动的分区。关系必须具有ID,并且必须包含空几何体。
亚搏在线准备将电梯关系写入IMDF的工作流
电梯关系首先通过使用测试仪只提取电梯单元来创建。然后用邻居探测器,电梯通过在一个堆栈中创建一个ID列表链接在一起。ListSorter和ListConcatenator按级别对电梯列表排序,然后创建堆栈ID。然后使用复制过滤器删除重复堆栈。pythoncaller用于创建从列表中提取关系信息的函数。最后,attributeCreator用于创建方向属性。
亚搏在线准备写出楼梯和扶梯与IMDF关系的工作流程
自动扶梯和楼梯的关系比电梯更复杂,通过使用测试仪仅提取楼梯来创建。和自动扶梯单元。然后使用attributeCreator设置特征类型(楼梯或自动扶梯),然后设置洞口ID。邻居查找器用于链接堆栈并创建ID列表,就像以前对电梯所做的那样。自动扶梯方向使用attributeValueMapper映射。然后,列表从下到上(楼梯或自动扶梯)或从上到下(自动扶梯)排序。然后,为每个级别的唯一组合创建一个堆栈副本,将列表切片以仅覆盖这些级别以及它们之间的任何级别。下一步,每一个堆栈拷贝都被转换成一个关系特性,顶部和底部的开口作为源和目标。所有横向单元都设置为中介。
亚搏在线准备将移动分区关系写出到IMDF的工作流
移动分区关系根据行李传送带时间表控制人员流动。使用测试仪故障端口从楼梯和自动扶梯关系中提取分区。然后使用ListExploder,使用“洞口”列表元素展开关系。然后,通过使用聚合器连接开口将单元分组在一起。列表搜索器用于搜索国际/国内行李提取的单位列表元素,然后再由国内的行李托运,最后由到达大厅。然后使用attributeCreators设置操作时间。最后,将添加IMDF属性。
一旦电梯的关系,自动扶梯,楼梯,并创建分区,它们被赋予一个唯一的ID,然后写出来给IMDF。
在FME数据检查器中查看的关系输出
运行翻译后,完整的IMDF文件可以使用安全软件IMDF验证页面进行验证,该页面将通过电子邮件向您发送一份报告,指出亚搏在线任何警告或错误。该文件应无任何错误地进行验证,但会出现一些警告。这些警告主要是由于线段短于规范阈值。也会有关于不在建筑示意图中的特征的警告。这是由于足迹检查中的坐标舍入,可以忽略。
有关IMDF验证的更多信息,请看验证IMDF数据集文章。
数据为)维多利亚机场管理局
?2019安全亚搏在线软件公司|合法的