设置KML区域和显示条件

    技术2023-12-05  87

     

    1前言

    使用FME可以轻松编写基本的KML数据集,而无需复杂的节点类型或特征样式。且在编写KML输出时,FME将尽可能保留源样式。

    2详细步骤

    2.1打开FME Workbench

    在空白工作区中,添加一个MapInfo TAB(MITAB)读模块,并设置读取文件为city_parks.tab文件(包含于文末”测试数据”中),单击确定以添加读模块。

    2.2重命名属性

    当我们在Google Earth中查看属性名称时,我们往往不希望看到任何下划线或其他数据特定的命名规范。故此,我们可以重命名属性,将AttributeRenamer转换器添加到工作区,选择name_alt作为输入属性,然后键入” alt name”作为输出属性即可。

    2.3设置KML属性

    我们还可以控制要素被单击时,其属性在Google Earth导航树中的显示方式以及弹出的描述气球。具体操作为,将KMLPropertySetter转换器添加到工作区,并将其连接到AttributeRenamer,而后在KMLPropertySetter转换器参数中,设置以下内容:

    名称:name

    摘要:Park

    属性表标题:Park Names

    2.4设置KML视图区域

    2.1.1多边形

    KMLRegionSetter转换器用于创建在KML内设置详细程度范围的区域。对于多边形,KMLRegionSetter可根据要素边界框计算得出区域边界框,并设置最大和最小显示尺寸。具体操作为,将KMLRegionSetter添加到工作区,并在其参数中将”最小显示尺寸”设置为20,”最大显示尺寸”设置为1000。

    2.1.2中心点

    对于中心点,使用KMLRegionSetter转换器也可设置其区域边界框,以及最大和最小显示尺寸。但点要素会产生一个无限小的边框,并且永远不会在输出中显示,因此,最好专门为点要素设置边界框。具体操作为,将CenterPointReplacer添加到工作区,并将其连接到City_Parks读模块。之后添加第二个KMLRegionSetter转换器,并将其与CenterPointReplacer进行连接。

    KMLRegionSetter中设置参数如下:

    从特征边界框计算:

    最小显示尺寸: 5000

    最大显示尺寸: -1

    最小X: -97.7

    最小Y: 30.2

    最大X: -97.5

    最大Y: 30.4

    2.5写入KML

    设置好区域后,我们现在可以将数据写入KML。具体操作为,将Google KML写模块添加到工作区,浏览到要保存文件的位置,并将数据集命名为ParkRegions.kml,之后将”要素类型定义”设置为自动即可。

    点击确认后,在弹窗中的”Parameters”窗口下,将”Feature Type Name”设置为”Parks”,然后单击确认,之后将生成的KML写模块与两个KMLRegionSetter进行连接。

    2.6运行工作区

    保存并运行工作区。待工作区完成运行后,单击Parks读模块将打开弹出菜单条,在弹出菜单条上,单击”打开包含文件夹”,将会定位到生成的KML文件所在位置。之后双击” Parks.kml”即可查看”Google Earth”中的数据。

    查看数据可以发现,公园多边形的颜色与其在源数据中的颜色相同,而这是由于FME保留了数据源样式属性,fme_color和fme_fill_color属性。

    下图中分别进行缩小和放大操作,以显示最小和最大显示尺寸带来的影响。

    缩小:

    放大:

    2.7数据来源

    本文所使用的数据为得克萨斯州奥斯汀市的公开数据,其中包含奥斯丁市-公共领域专用许可准许下的数据。

     

     

     

     

    资源下载地址:

    https://knowledge.safe.com/storage/attachments/39125-settingregionsanddisplay.fmwt完成的工作空间

    https://knowledge.safe.com/storage/attachments/39126-city-parks.zip测试数据

     

    Processed: 0.008, SQL: 9