斯潘8
斯潘4
我并不建议将whoole数据集加载到FME中——这只需要占用大量的内存。我认为您最好的选择是使用3dcitydb导入/导出工具将citygml导入到三维城市数据库的Postgis实例中(这也需要相当长的时间)。在数据库中,您可以使用3dcitydb导入/导出工具将数据导出为tiles。我认为这些瓷砖可能是FME/您的硬件能够更好地处理的。
您可以在这里找到进口商/出口商:https://www.3dcitydb.org/3dcitydb/d3dimpexp/还可以阅读有关如何使其全部工作的文档。
只是为了跟进这个线索-我已经将整个NYC LOD2 GML文件加载到3D城市数据库中,但我不确定你所说的输出瓷砖是什么意思。我看到了一个过滤函数,大概我只能输出“building”类。
问题是,如何将单个建筑输出到单个文件中?我想也许我需要写一个定制的脚本来完成这个任务,但为了防止你知道任何现成的工具。谢谢!
您可以使用FME从3D城市数据库将单个建筑导出到单个GML文件。
为此,您需要将XML项目文件保存到城市数据库中。您可以从3CityDB导入器导出器的GUI中保存一个(顶部的项目(在保存到项目文件之前,建立连接,并在“首选项”和“导出”选项卡中执行其他所有首选项设置)。将此文件保存到您可以轻松找到的位置。
然后在FME中,使用SQL执行器从数据库中选择GMLID作为结果。使用属性creator修改结果值,所以新的价值是
来自sqlExecutor的结果gmlid应应用于属性creator中项目XML的导出筛选器部分。
使用属性文件编写器创建新的项目XML文件,这是您的配置文件。将参数设置为owerwrite现有文件。现在,您有了一个只导出由其gmlid定义的一个对象的配置。
系统调用者在FME中,使用cmd prompt命令触发3D城市数据库导出,并将新创建的项目XML文件用作要在导出中使用的项目XML文件。参数和/或属性值,用从SQL执行器得到的gmlid值命名每个输出导出文件。现在,应该为每个建筑触发导出,并且每个建筑都应该在自己的文件中。我建议您为导出路径设置用户参数值,把最后一个文件夹命名为f.e gmlid,因此,对于每个单独的GML文件,都有单独的外观文件夹(如果应用了外观)
系统调用程序命令行示例:
Java-JavaXM128M -XMX1024M(您的3D导入器出口路径)/LIb/3DCITYB-IMPEX.JAR - shell配置(路径到配置文件)-导出(导出路径)/(您的GML ID值)
你好,Jerez,很抱歉回复迟了,非常感谢您的帮助!不知怎么的,我只是看到了这个。我最终使用fanout函数解决了这个问题。对于任何可能偶然发现这个问题的人,下面是我打开的另一个线程来解决我的问题:https://knowledge.亚搏在线safe.com/questions/84869/output-buildings-into-individual-obj-files.html
?2019安全亚搏在线软件公司|合法的