有各种限制区,多个终端,时间限制,导航机场对任何人都是一个挑战。乘客,特别地,需要快速高效地到达目的地。苹果的室内地图计划可以帮助乘客导航大型机场综合设施,但要添加此类地图,需要将数据转换为苹果的室内地图数据格式。(IMDF)
在这种情况下,您将了解如何将维多利亚机场(ESRI地理数据库)的地图数据转换为IMDF。在本例的末尾,您将执行数据转换步骤,以生成一个准备发布到苹果地图的数据集。
注:这个例子展示了如何处理来自维多利亚机场的数据。您自己的源数据可能在结构和格式上有所不同,因此需要不同的转换技术。
FME 2018.1 +
已安装python
atb-publicdata.zip文件数据是维多利亚机场管理局
中级FME技能水平
了解IMDF规范
提供的数据包含在三个不同的地理数据库中,机场每层一个。这些地理数据库包含整个机场结构的数据。因为我们只对机场的布局图感兴趣,以及重要功能(如安全区,登记柜台,以及行李传送带)我们可以减少我们阅读的特征类型(特征类)的数量。
我们感兴趣的功能类型有:
处理前在FME数据检查器中查看的上述特征类型
这个场景尽可能详细,同时保持可读性。要进一步了解每个变压器的特定参数,请参阅已完成的工作区。
源数据概述下列出的功能类型已使用文件geodatabase(文件geodb open api)读卡器添加到工作区。对于某些功能类型,它只有一个实例(即ATB-U环绕)对于其他人,有两个或三个;这是因为这些功能存在于多个楼层。
在准备写入IMDF之前,需要清除每个功能类型。清洁包括地理参考,清洁几何结构,创建IDS,以及操作属性。以下部分将详细说明为每种功能类型完成的步骤。
亚搏在线ATB_环绕的数据清理工作流
建筑ID是根据ATB U环绕数据创建的。采样器选择单个环绕特征,UuidGenerator创建ID,变量setter创建一个名为building的变量,并将其值赋给id。
这个变量在整个工作区中被引用。如果稍后在工作区中使用带有功能缓存的运行,确保variablesetter是任何部分运行的一部分,否则,工作区将失败。
在ID变量创建的独立流上,溶解器用于将周围区域溶解为单个多边形。然后,使用DonutholeExtractor,从建筑中创建的甜甜圈孔将被移除。最后,数据通过applygeoReferencing自定义转换器运行,该转换器旋转,偏移量,缩放并设置坐标系。此自定义转换器将在整个工作区中多次使用。
在ApplygeoReferencing自定义转换器中,参数为:
ATB U环绕的前后数据清理。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
亚搏在线安全/安全线路数据清理工作流程
第一,使用弧击变压器将弧几何转换为线,然后用几何滤波器对几何图形进行压缩。下一步,该除泥器用于破碎集料线并封闭小间隙。捕捉器和闭线器的组合用于将线组合成一条线,每层一个。最后,使用applygeoReferencing自定义转换器对数据进行地理引用。
安全/安保线路的前后数据清理。粉红线是一楼的安全线,紫色线是二楼的。三楼没有安全线。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
亚搏在线用于打开数据清理的工作流
开场白,最初,所有需要做的是,所有三个楼层的开口都需要使用适用的定制变压器进行地理参考。
亚搏在线建筑/墙多边形和建筑/房间的数据清理工作流
所有三种建筑/墙多边形特征类型都连接到一个属性创建器转换器,以创建具有结构值的类别属性。然后使用applygeoreference自定义转换器对其进行地理引用。下一步,几何图形使用Arcstroker组合进行清理,解聚器,几何定义器,笛鲷。然后使用区域间隙和重叠清洁剂和另一个分解器清除所有间隙或重叠。使用空间滤波器和测试仪,任何单独的墙壁或非公共区域都会被过滤掉。
使用取样器组合为每个房间创建另一个变量,UUIDGenerator以及变阻器变压器。此变量使用了fme_basename值,这是机场的高度(ATB1,ATB2和ATB3)。在第二个数据流中,attributeValueMapper用于压缩房间(单元)类别基于notes属性。房间类型如下:
在属性值管理器之后,数据通过applygeoReferencing自定义转换器连接到建筑/墙多边形工作流。亚搏在线
建筑前/墙多边形和建筑前/房间数据清理以及合并多边形后数据清理。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
亚搏在线架构/计数器的数据清理工作流
柜台是机场每个值机柜台的详细图纸。每个人都需要他们居住的房间的属性,最好使用简化的几何图形。第一,几何量角器变压器记录原始(详细)数据的副本,然后使用CenterPointReplacer为每个计数器创建一个简单的中心点。下一步,使用空间过滤器,房间属性合并到每个登记柜台上。几何置换器用于从几何拉伸器中检索存储的几何图形。
VertexCounter和AggregateFilter用于对数据进行排序以进行筛选。然后使用testfilter按以下方式筛选数据:
一旦数据被过滤,使用attributeCreator为testfilter上的每个输出端口创建一个新类别。
登记亭和移民服务台都被发送到一个名为makepolygon的自定义转换器,它使用多个几何变换器生成多边形。值机柜台和安全设备被发送到boundingboxreplacer,以将几何图形简化为矩形。最后,使用applygeoReferencing自定义转换器对计数器进行地理引用。
亚搏在线建筑/传送带的数据清理工作流
测试变压器仅用于从所有不同的传送带功能中提取行李提取传送带。然后使用attributeCreator创建类别和名称。然后使用Arcstroker,鲷鱼,和区域建设者,为每个传送带创建多边形。传送带路由到与计数器工作流连接的同一个applygeoReferencing自定义转换器。亚搏在线最后,中央传送带用于国际和国内行李,根据一个固定的时间表,需要添加此信息。AreaBuilder_2还连接到建筑/公共设施数据清理工作流以添加此计划信息。亚搏在线
建筑/计数器和建筑/传送带的前后数据清理。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面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数据检查员中查看的场地输出。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面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数据检查器中查看的级别的输出。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
亚搏在线准备将封装外形写入IMDF的工作流
这个足迹 是建筑物的近似多边形。示意图必须具有ID并且必须是多边形。
连接到创建级别属性的attributeCreator,属性移动器用于删除级别名称。然后使用testfilter,级别按顺序组织(空中,地面和地下)。连接到天线和地面输出端口的分解器用于将级别分解为足迹。然后,使用油炸圈拔取器删除创建的所有油炸圈孔。然后使用一个属性创建者给脚印提供航空的类别。
下一步,一个attributeCreator连接到testfilter上的接地输出端口,以向封装外形提供接地类别。
最后,另一个溶解器,Donuthole提取器,和attributeCreator连接到testfilter上的地下输出端口,脚印是地下的一类。
然后,所有三个属性创建器都连接到一个UuidGenerator以创建一个封装外形\u id,然后写入IMDF。
在FME数据检查器中查看的足迹输出。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
亚搏在线准备向IMDF写入地理围栏的工作流
一地质公园通过设置限制分隔一个或多个区域。如果是机场,这将是前后安全措施。地理围栏必须具有ID并且必须是多边形。
交叉转换器连接到创建级别属性的attributeCreator,该属性用于通过安全线分隔单元。然后,一个区域生成器用于为安全线任一侧的每个级别创建新的多边形。然后使用geometryextactor保存几何体;这样做是为了在不影响几何体的情况下操纵属性并将其与其他属性合并。CenterPointReplacer用于创建包含每个多边形的所有属性的单个点。然后,使用裁剪器裁剪该点,以使新多边形保持在级别内。一个leftrightspacecalculator用于确定每个多边形落在安全线的哪一边,这是按fme_basename分组的,因此它使每个级别保持独立。使用ListSearcher对多边形进行分类;如果多边形在直线的右侧,它是预先安全的,如果在左边,这是邮政安全。然后使用attributeCreators设置类别。
最后,几何置换器用于恢复多边形,然后使用attributereMover删除任何特定于级别的属性。使用两个可变检索器检索ID,并使用UuidGenerator创建地理围栏ID。创建一个中心点,然后将地理围栏写入IMDF。
在FME数据检查器中查看的地理围栏输出。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
亚搏在线准备向IMDF写出开口的工作流
安开放表示房间或建筑的入口,可以是门或门槛。开口必须具有ID,并且必须具有作为几何图形的线字符串。
要创建洞口,UuidGenerator连接到FeatureTypeFilter,然后连接一个变量检索器来创建和检索ID。几何取样器连接到产生水平的溶解器;这用于强制打开行的级别边界。然后将一个空间滤波器连接到几何控制器和可变检索器,以在水平边界上找到开口;这将决定开口是内部的还是外部的。然后,使用两个attributeCreator来创建pedestrian(内部)或pedestrian.principal(外部)的类别。然后计算出中点作为显示点;这是通过使用几何量角器来实现的,Snipper坐标量角器和几何代替器。创建显示点后,空名称属性设置为
在FME数据检查器中查看的打开输出。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
亚搏在线准备向IMDF写出单元的工作流
一单元表示房间或走廊,是封闭空间。一个单元必须有一个ID,并且必须是一个多边形。
UuidGenerator用于创建ID,并连接到FeatureTypeFilter。然后使用attributeCreator创建一个名为_predicate的属性,该属性将在spacerelator中使用;这与用于创建洞口的变量检索器相连。空间中继连接到UuidGenerator和attributeCreator,并使用谓词属性测试关系。变量检索器用于获取级别ID。另一个attributeCreator用于将notes属性复制到名为name的属性;这将是每个单元的名称。创建一个中心点,空名称属性设置为
在FME数据检查器中查看的机组输出。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
亚搏在线准备编写便利设施并锚定到IMDF的工作流
安舒适性是一个提供便利服务的功能,如洗手间或饮水机。便利设施必须有一个ID和一个点几何。
使用UuidGenerator创建便利设施ID,然后将便利设施覆盖在单元顶部,以使用PointOnAreaOverlayer获取单元ID。姓名,然后使用attributeCreator创建类别和单位ID属性。空名称属性设置为
在FME数据检查器中查看的便利性输出。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
安锚是用于显示特定地址或不可寻址位置的指定点。定位点用作另一个功能可以继承定位点属性的点。
锚遵循与便利性相同的工作流,除了测试人员用于测试亚搏在线类别。任何未指定的便利设施,服务,食品服务,或角叉被认为是锚。
在FME数据检查器中查看锚点的输出。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
亚搏在线准备向IMDF写出占用者的工作流程
安乘员提供商品或服务的企业所在地。这些乘客由锚代表。
一旦确定锚定,将重命名并创建唯一ID,然后使用attributeValueMapper将属性重新映射到特定的IMDF类别。databasejoiner用于将包含业务信息的csv文件与锚合并,以创建占用者。创建一个包含数据有效性的属性。修改日期,然后将空属性映射到
在FME数据检查员中查看的乘员输出
亚搏在线准备向IMDF写出部分的工作流
一部分是为特定目的服务的区域。例如,机场会有行李领取处,办理登机手续,大门和安全区。节必须具有ID并且必须是多边形。
一个attributeValueMapper连接到FeatureTypeFilter以将单元重新映射到一个区段类别,对于这个例子,这些是:
一旦名称重新映射,检测仪用于删除任何没有节类别的单元。然后,使用溶解器为每个部分创建一个多边形来溶解具有一个部分的单元的边界。然后使用UuidGenerator和VariableRetriever创建和检索ID。使用CenterpointReplacer和DonutholeExtractor创建一个中心点并删除所有多边形孔。最后,空名称属性设置为
在FME数据检查器中查看的部分的输出。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面ODBL.
亚搏在线准备向IMDF写出夹具的工作流
一固定装置表示包含在可以移动或半永久的单元中的物理对象。对于这个例子,这代表行李传送带或登记柜台。设备必须具有ID并且必须是多边形。
通过使用另一个FeatureTypeFilter来分离转盘和计数器,在FeatureTypeFilter之后再次过滤设备。测试仪用于确定夹具是非公共的还是结构的。然后用剪刀剪出任何非公共的传送带部件。然后创建和检索ID,以及创建一个中心点。一旦空名称属性重命名为
在FME数据检查器中查看的夹具输出。背景图平铺方式雄蕊设计,在下面CC 3.数据通过OpenStruts地图,在下面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数据集文章。
数据是维多利亚机场管理局
请注意,本文仅用于演示。数据是 不提供.如果您需要数据,请参阅 场景:维多利亚机场ESRI地理数据库到IMDF文章
这是关于如何将AutoCAD DWG转换为室内映射数据格式(IMDF)的三部分教程系列的最后一篇文章。此工作区将获取已清理和编辑的dwg文件,参照它,然后按照命名约定准则将其转换为IMDF。
AutoCAD(第2部分)
谷歌地球(第2部分可选)
开始之前,您需要将楼层与在中完成的特定IMDF属性对齐。第1部分.您还需要手动清理并创建在中完成的地理参考点。第2部分.
此工作区从DWG创建IMDF文件。在写给IMDF之前,需要通过创建更多特定于IMDF的属性来进一步清理这些特性。这些功能还需要重组为IMDF层次结构:场馆,地址,建筑,足迹,水平,单位,打开。
makeimdf.fmw工作区的开始部分与preprocess.fmw相同,直到featuremerge。唯一的区别是它现在读取的是在AutoCAD中创建的新locate.dwg文件。第2部分.
需要创建建筑ID,它存储为一个变量,供每个功能引用。运行此工作区时,确保在未启用功能缓存的情况下运行它。
要创建建筑ID,采样器变压器用于获取一个特征并为其创建UUID。然后使用variablesetter转换器创建名为building的变量,其值为uid。稍后将使用variableretriever检索建筑ID。
用于创建建筑ID的工作区部分概述
下一步,每个层文件都有命名约定
在FME数据检查器中查看被分隔为各个属性的层
一个属性过滤器被用来分离每一层,这样它们就可以被独立操作。图层过滤方式:
水平:
对于这个演示,每个级别在文件名末尾都有一个坐标。使用StringSearcher组合创建序数属性,属性标记,和属性创建者。然后创建其他属性:类别,室外,姓名,短名称。名称是级别编号,例如,03,那就是三楼。检索建筑变量并将其附加到每个级别。
拆分属性后级别层的属性
最后,地理参考与自定义变压器应用地理参考一起应用,这与预处理.fmw处理工作区(第1部分),它只是包装在一个自定义的转换器中来清理工作区。
亚搏在线准备级别的工作流部分概述
单位:
准备单元(房间)有三个步骤。第一,每个单元都需要有正确的几何结构,这是通过使用linecloser和donutbuilder来创建每个单元来完成的。这一步很重要,因为它可以确保每个单元都是一个完整的多边形。
第二部分是操作与每个单元相关联的文本。通过使用PointOnAreaOverlayer将RM$TXT覆盖在单元上,合并属性。然后将文本旋转并聚合,以提取每个单元的数字。RM$TXT中包含的文本被提取并存储在每个单元的属性中。
第三部分和最后一部分是将每个单元与适当的级别相关联,以及地理参考。
在FME数据检查器中地理参考和清理单元视图
开口:
准备开口,首先,需要从其他层中过滤它们。一旦它们被过滤掉,仅使用线条几何。空间过滤器用于确定开口是内部还是外部。如果它们是内部的,它们被指定为“行人”属性。如果它们是外部的,它们被指定为属性pedestrian.principal。最后,开口参照实际坐标。
红色开口是具有“pedestrian.principal”属性的外部开口,在FME数据检查器中查看
地点:
要创建建筑区域的边界,使用接线盒蓄电池变压器。然后元数据属性包含关于场地的信息,像名字一样,电话号码,创建网站。
场地边界框,在FME数据检查器中查看
地址:
使用两个attributeCreator创建包含地址的属性,比如街道地址,城市,国家,以及邮政编码。根据数据的范围,建筑和场地的地址可能不同。
此示例数据集的两个不同地址属性
建筑物:
为包含建筑名称和类别的建筑创建属性。
足迹:
为建筑创造足迹,第一,按类别筛选,地面,地下和空中。然后将这些区域溶解成一个区域。
按类别构建示意图。红色是空中的,蓝色是地面,绿色是地下。在FME数据检查器中查看。
向IMDF写入时,会创建一个单独的zip文件,其中包含每个单独的功能类型:级别的geojson文件,单位,开口,地点:地址,建筑,还有脚印。在发送要发布的IMDF之前,应验证数据,以检查数据中是否存在任何错误或警告。
请注意,本文仅用于演示。数据是 不提供.如果您需要数据,请参阅 场景:维多利亚机场ESRI地理数据库到IMDF文章
本文是AutoCAD到室内映射数据格式(IMDF)教程系列的第2部分,共3部分。此部分将从FME桌面移到AutoCAD中,以便在写入IMDF之前手动清理图形。对照您的绘图检查每个问题,然后通过以下示例修复它们。此零件还创建一个location.dwg文件,用于在第3部分.
免责声明:这不是AutoCAD教程,这篇文章只是为了强调可能需要解决的问题,不是如何修复它们。
AutoCAD
谷歌地球(可选)
确保第1部分已完成,并且您有一个AutoCAD文件,该文件与遵循IMDF命名约定的属性对齐。
在AutoCAD中查看的第1部分的完整图纸
在中创建的toedit.dwg第1部分应在AutoCAD中打开,然后查看每个图层,其中包含以下需要手动修复的潜在问题列表:
a)单线和开口
如果单行处理和洞口提取不完美,可能需要在AutoCAD中进行润色。尤其是小的“缺口”。
问题A:单线过程中的缺口工件
固定A:去除槽口
b)向下方开放的高房间
延伸到上述高度的高房间需要在该高度上复制,在“OpenToBelow”层上。
c)单元边界上的开口
开口应位于单元边界上。在单元之间的开口处,两个单元边界应在这些开口处重合。awa层可用于检查这些开口。
问题C:不在单元边界和柱上的开口阻止了墙的单线。
固定C:开口旋转成直线,单元边界调整
d)外部开口
外部开口应位于装置和水平边界上。装置和水平面应在这些开口处重合。
问题D:单位(青色)应与开口处的水平(红色)一致(蓝色)
固定d:单元边界移动
e)没有门符号的相邻单元
相互开放的相邻单元,但没有门就需要手动将它们之间的开口放置。
问题E:由于门符号的自然缺失,单元没有开口
固定E:使用awa层(白色)作为放置新开口线(红色)的指南。
f)零区
单位层中的任何空白区域,在水平边界内,将被视为最终IMDF中的墙。如果已知有结构柱,它们应该移动到该级别的列层。
g)小细节
应将小细节(小于2英尺)从标高边界移除,水平边界之间的小偏移量应该被删除。
几何图形清理完毕后,在AutoCAD中,最后一步是为建筑物上的参考点确定精确的经纬度坐标。
如果参考点不可用,可以使用谷歌地球。可以通过添加一个位置标记来定位参考点。在“新建放置标记”对话框中,记下纬度/经度值。从那里,使用标尺工具确定dwg文件中垂直边的标题。
回到AutoCAD中,创建一个名为located.dwg的新空文件,并将编辑后的dwg添加为外部参照。将设置外部参照,以便在编辑的dwg文件中参考点为0,0。最后,外部参照被旋转,以便与Google Earth中的对齐方式相匹配。
然后保存地理参考图纸,并将其移回FME进行最终处理。继续第3部分学习如何完成处理。
已编辑的dwg外部参照以按已知点旋转和对齐
请注意,本文仅用于演示。数据是 不提供.如果您需要数据,请参阅 场景:维多利亚机场ESRI地理数据库到IMDF文章
这是关于如何使用FME将AutoCAD转换为室内映射数据格式(IMDF)的三部分系列文章中的第一篇。它包括如何预处理数据。为了在这个系列中取得成功,这三个部分都需要遵循。模板文件已提供用于您的数据。请记住,有些变压器可能需要根据正在转换的数据更改其参数。最好在启用功能缓存的情况下运行工作区,并在数据流过时监视数据。
免责声明:这些文章旨在对每个工作区的功能和转换数据的过程进行高级概述。打开工作区并检查每个变压器的参数以了解具体情况。
AutoCAD(AutoCAD)第2部分:准备预处理数据)
谷歌地球第2部分可选:准备预处理数据)
在进入FME之前,确保已创建包含建筑内所有层的主dwg文件。将楼层文件作为外部参照附着,位置设置为0,0,0,刻度设置为0,旋转0:
将每个楼层文件附加到位置,规模,在AutoCAD中将旋转设置为0
为了使数据有效,IMDF需要满足特定的要求。preprocess.fmw工作区是准备数据的三个工作区之一。第一步是对齐建筑的楼层,并创建具有正确命名约定的属性,以满足IMDF要求。
在AutoCAD中查看对齐之前
处理数据的工作区如下所示:
用于转换为IMDF之前预处理AutoCAD DWG的FME桌面工作区概述
建筑物的主图纸文件,它应该包含对每个层文件的引用,读入。添加读卡器时,在读卡器功能类型参数中,将显示其他AutoCAD和外部参照格式属性。
然后,测试仪将仅用于分离AutoCAD实体中的AutoCAD外部参照文件。
引用文件的路径可以是绝对路径或相对路径。另一个测试仪用于分离每种路径类型,以便分别处理它们。相对路径通过文件名partextractor转换器从fme_数据集中提取路径名。然后利用各种变压器将相对路径转换为绝对路径。
如果路径已经是绝对路径,它将创建相同的路径和外部参照属性,只是没有数据清理。
一旦清理了路径,这两种类型都通过BulkAttributeMover删除所有属性,从AutoCAD开始:
BulkAttributeRemover前后的属性
FeatureReader Transformer用于从参考文件中读取AutoCAD DWG功能,使用路径属性指定文件名。在“飞毛腿”中,将显示AutoCAD对齐和实体属性,用于将门符号转换为与墙重合的线条。
清除并读取外部参照文件
使用AutoCAD DWG属性创建新的IMDF位置特定属性:
新属性 | 属性值 |
XXRF | AutoCAD外部参照名称 |
腐烂病 | AutoCAD旋转 |
X文件级 | AutoCADXX刻度 |
文件大小 | 自动驾驶仪 |
第二等级 | 自动驾驶仪 |
从主图形中提取坐标,计算主图形和参考图形之间的差异并将其存储为属性。这些属性将用于偏移图形。然后删除非imdf特定的属性。
提取要在offsetter中使用的坐标
地理参考工作流亚搏在线
功能合并用于基于xref属性将外部参照和地理参照工作流合并在一起。亚搏在线仅合并属性。
然后通过旋转应用地理参考,缩放和偏移图形。所有层和房间现在都在正确的位置。
在FME数据检查员中查看的地理参考对准前后
所有层都在正确的位置,它们需要分为不同的类型:级别(Gros$),单位(RM$)和开口(ADO)。FeatureTypeFilter用于按总美元过滤,RM $和ADO。
要创建级别(gros$),将创建一个名为“outerlayer”的新属性,这是每个级别的外墙,具有命名约定
在FME数据检查器中重命名和查看的级别
下一步,使用按外部参照分组的区域生成器创建房间。然后,通过将双层墙转换为一条线,使墙变薄;这是通过使用WallThiner自定义变压器完成的。最后,创建属性outerlayer,其值为
在FME数据检查器中查看的WallThiner自定义变压器前后的墙
将门转换为洞口要复杂一些。第一,需要将门线捕捉在一起,然后组合在一起,以创建表示每个门的单行。然后使用两个坐标拉伸器来提取每个门端点并创建顶点。
然后使用锚定捕捉器将顶点捕捉到墙上。最后,创建属性outerlayer,属性值为
从附着坐标的门创建的端点,在FME数据检查器中查看
最后一步是在AutoCAD中编写用于手动处理的dwg。将删除AutoCAD_-Alignment_x/y/z属性,那么外地人属性
_创建了Outlayer和AutoCAD对齐属性
编写器设置为使用图层名称outerlayer写出AutoCAD DWG格式。运行转换,然后在AutoCAD中打开dwg文件。继续第2部分学习如何在AutoCAD中编辑文件。
对准后,在AutoCAD中查看
请注意,本文仅用于演示。数据是 不提供.如果您需要数据,请参阅 场景:维多利亚机场ESRI地理数据库到IMDF文章
本文对如何使用FME将室内ARCGIS数据转换为室内映射数据格式(IMDF)进行了高层次的概述。提供了一个模板FME工作区文件,用于您的数据。请记住,有些变压器可能需要根据正在转换的数据更改其参数。最好在启用功能缓存的情况下运行工作区,并在数据流过时监视数据。
将室内ARCGIS转换为IMDF的FME桌面工作区概述
室内Arcgis是用于创建室内地图的ESRI绘图工具箱。ARCGIS室内数据存储在地理数据库中,可以通过FME在FME桌面上使用文件地理数据库(文件geodb)或文件地理数据库(文件geodb open api)读卡器读取。
IMDF中建筑物的每个部分都需要有自己的唯一标识符。在工作区中,每个特性类型(表)都通过UuidGenerator转换器来创建唯一的ID。
根据项目范围,数据可以需要限制在特定区域。在这个演示中,建筑物用变压器组合固定在感兴趣的区域;测试器,地理学者,边界盒替换器,剪刀。
创建ID和剪切数据后,每个要素类都被过滤回各自的类型:站点,设施,水平,部分,区域,单位,POIs开口,细节。
每种类型都将在写入IMDF之前进行处理。当写给IMDF时,创建了一个单独的zip文件,其中包含每个单独功能类型的geojson文件。
地点及地址:
为了创造一个场地,首先提取中心点,并创建地址ID(CenterPointextractor和UuidGenerator变压器)。
多个attributeCreator Transformers用于创建包含建筑信息的元数据属性;比如地址,姓名,类别,邮政编码
功能最终被发送到一个编写器进行输出。
工作区部分概述,以创建场地和解决IMDF功能
占地面积建筑:
要创建一个建筑,首先提取中心点(CenterPointextractor)。多个attributeCreator转换器用于创建元数据属性。
来自场地的地址ID将添加到建筑(FeatureMerge)和写入IMDF的建筑中。
创建封装外形ID,并将封装外形写入IMDF。
工作区部分概述以创建建筑物和示意图IMDF功能
水平:
通过创建特定于级别的属性并检索建筑ID变量来创建级别。
工作区部分概述以创建级别IMDF功能
带锚的装置:
要首先创建单位,每个房间名称的属性值将重新映射到IMDF名称类型。然后使用锚定推覆器填充水平面和单元之间的空隙,剪刀,和几何验证器。
使用变量检索器变压器检索级别ID,然后将其写入IMDF。
锚定是通过首先合并场馆的属性来创建的,然后测试以找到需要锚定的装置。然后将锚写入IMDF。
工作区部分概述以创建单元和锚定IMDF功能
便利设施和居住者:
兴趣点(POI)被单位覆盖,然后将这些值重新映射到IMDF标准。设施和居住者将被写入IMDF。
工作区部分概述以创建便利设施和居住者IMDF功能
开口:
使用attributeCreator和variableRetriever来创建和写入IMDF。
创建打开IMDF功能的工作区概述
此FME转换的结果是一个IMDF文件。IMDF文件是一个zip(压缩)文件,其中包含每个特征类型的geojson数据;水平,单位,开口,场馆,地址,建筑,还有脚印。
在向苹果提交IMDF文件之前,请考虑验证它检查错误和不一致。
苹果地图支持室内地图,游客可以在那里计划旅行,甚至在建筑物周围导航。提交用于苹果地图的地图必须采用室内地图数据格式(IMDF)。
提交给苹果的IMDF文件必须遵循严格的指南,以确保数据完整性,并最大限度地提高数据对苹果地图和其他室内地图应用程序的有用性。提交前验证确保数据符合这些准则,这意味着它可以毫无问题地上传到苹果地图上。
安全软件专家已经创建了两种不同亚搏在线的方法来验证IMDF文件以检查错误:在线数据验证程序,以及用于FME的验证变压器。
这个联机数据验证程序 接受IMDF文件上载。作为回报,用户收到电子邮件报告,指示任何错误和警告。
这个IMDFvalidator自定义转换器 用于FME工作区,在写入IMDF之前验证空间数据。它也提供了详细的反馈,这样用户就可以很容易地了解问题所在,并更容易地纠正问题。
验证通常是一个迭代过程。最好从数据的小样本开始,例如一些基本的功能类型(场地,建筑,足迹,地址,级别),并且每个功能类型只有几个功能。这样就不需要检查数千个重复性错误。在进行修正之后,可以向评估中添加更多的特性,直到整个数据集得到验证。
免责声明:经过IMDF 使用在线工具或自定义转换器进行验证并不能保证苹果可以接受。这些只是帮助您的数据满足最低标准的工具。
在验证报告中可以看到两种类型的消息:
误差<
警告
一个错误通常是一个问题,必须修复的IMDF才能被苹果地图接受。警告通常是一个不会阻止接受数据的问题,但会降低其对最终用户的有用性。
如果某个功能没有生成消息,这意味着它已经通过了验证。
安全软件提供的免费在线IMDF验证工具使用亚搏在线FME服务器为每个上传的IMDF文件生成验证报告。
参观IMDF验证工具在步骤1中创建网页并上载IMDF文件。在步骤2中,输入您的姓名和电子邮件地址。几分钟后,检查您的收件箱以获取验证报告。
注:在线报告只提供7天。如果您需要这份报告更长时间,请保存HTML页。
在线IMDF验证程序网页
验证报告提供了测试哪个文件的详细信息,测试时,并根据IMDF标准进行测试。
报告列出了所有不符合要求的功能,并在地图上显示了每个问题。
它还提供了关于特征类型(所有特征和图层)的详细信息,身份证件,类别,水平,和验证错误。使用功能类型和ID来确定哪个功能包含问题。然后,您可能希望使用FME桌面来修复报告的问题。
在向苹果提交IMDF数据之前,必须修复错误。应处理警告,在可能的情况下,为了提高数据的有效性,但警告的出现不应妨碍提交的过程。
注:在FME中,功能类型引用源数据集架构或结构。FME使用的每种格式都通过分类方案来识别特征。这种分类在FME中被称为特征类型。
有错误的验证报告。
此示例验证报告有许多错误,地址缺失,主修建筑。如果使用cad-to-imdf文章中演示的FME工作空间生成此数据,可以修改工作区以提供正确的结果。
这个IMDFvalidator自定义转换器在FME工作区内使用。它对于在将数据写入IMDF之前检查整个翻译过程中的数据非常有用。
IMDFvalidator自定义转换器
IMDFvalidator提供有关数据的详细报告。结合FME工作台工具,如使用功能缓存运行,它允许用户查看每个错误消息发生的原因,要查看所有属性,进一步检查几何结构。
在FME数据检查器中查看这些示例结果,建筑特征类型似乎完全没有属性:
在FME数据检查器中查看的IMDFvalidator的输出
了解问题的原因有助于修改FME工作区以产生正确的结果。
注:考虑到IT建模的业务规则的复杂性,IMDFvalidator在翻译中有很大的开销。一旦工作流和数亚搏在线据集被验证,出于性能原因,在生成最终输出时可能需要绕过IMDFvalidator。
室内测绘数据格式(IMDF)是一种基于geojson的复杂空间数据格式。这是一个由苹果公司建立的数据模型,可以实现室内定位。
苹果地图是一个在线地图服务,允许用户计划旅行和实时定位。近年来,苹果地图增加了对室内地图的支持,在那里游客可以计划旅行和在建筑物周围导航,而不是户外。这类建筑通常涉及复杂的设施,如购物中心和机场。
设施可提交其场馆建筑的地图,并将其纳入苹果地图中。此类数据必须以室内映射格式IMDF提交。
FME是创建IMDF数据集的理想工具,不仅因为它支持将数据转换为IMDF格式,但也因为它支持读取数百种类型和格式的数据,在这些数据中可以存储源映射。
本教程包括使用示例数据集将数据转换为IMDF的FME模板。
用于转换的文章维多利亚机场地理数据库至IMDF 包括数据并显示如何使用FME将ESRI地理数据库数据转换为IMDF格式。请注意,要将此数据与其他文章一起使用,工作区需要更改其参数。
关于转换的文章室内ARCGIS至IMDF显示了如何使用FME将ArcGIS室内数据(和一般的GIS数据)转换为Apple IMDF格式。
一般来说,有关转换CAD数据的文章(在本例中是AutoCADDWG)显示了如何使用FME将CAD数据转换为IMDF。它由三部分组成:预处理数据使用FME,准备预处理数据使用AutoCAD,和将准备好的数据写入IMDF使用FME。
文章论将IFC转换为IMDF有一个记录良好的工作区来探索工作区的每个部分的功能,并提出问题来帮助您理解数据。本文包含一个指向可下载数据的链接。
提交给苹果的IMDF文件必须遵循严格的指导原则,以确保数据完整性并最大限度地发挥数据的效用。提交前验证确保数据遵循这些准则,并且可以毫无问题地上传到苹果地图。
本教程的最后一篇文章解释了如何验证IMDF数据.
提供了两种验证方法。第一个是免费在线工具接受IMDF数据上传,评估数据质量,并通过电子邮件发送验证报告。
第二种验证方法是自定义变压器在FME工作区内使用。它甚至可以在写入IMDF格式之前评估数据质量!