斯潘8
斯潘4
SQL Server对可以存储在数据库中的几何图形有特定的限制。如果几何图形不符合SQL Server标准,很可能发生错误。SQL Server 2012及以后的版本将接受无效的几何图形以供稍后验证。因此,在将几何图形加载到SQL Server数据库之前,有时清理和修复几何图形是必要的,也更容易。
支持的Microsoft SQL Server空间读写器几何图形列在FME中。快速事实文档。
下面是Microsoft SQL ServerOGC通用体系结构规范。概述了SQL Server支持的空间数据类型在这里.并非所有几何图形都被数据库接受:某些几何实例无效,列在有效详细信息()方法。
验证几何图形对于确保成功翻译和成功传输到数据库非常重要。将无效几何加载到数据库中可能会导致需要注意的意外结果。
SQL Server 2012Forward将加载无效的几何图形,并为用户提供稍后验证和修复几何图形的能力。因此,FME不会使翻译失败。相反,它将在日志中写入警告消息,以防出现无效的几何图形时用户应该知道这些消息。
用户可以使用记录的stisvalid()方法检查数据的有效性。几何学(平面单位)和地理(椭球单位)除了isvalidDetailed()方法。有关使用这些方法的更多信息,请看FME正在加载具有无效几何图形的功能.
或者,用户可以选择在数据库加载之前使用geometryvalidator并修复几何体。
这个几何验证程序可用于检查和修复具有无效几何图形的功能。用户可以选择这样的OGC标准或基本的几何完整性,这有很多问题。
如果正在读取到数据库中的数据集可能存在此类问题,应使用变压器检查可能导致错误或产生不必要结果的任何特征。
值得注意的是,SQL Server允许非简单的几何体。如果某个特性未能通过OGC简单测试,SQL Server可能仍然接受该功能。
例如,SQL Server将接受非简单的linestring(自相交),但OGC简单测试失败。具有重叠边缘的多行字符串将无法通过OGC简单测试,并且无法加载到数据库中,因为行不相交,而是在一个间隔内重叠(isvalidDetailed()返回值24413)。
在示例工作区中,读卡器只有一个具有无效几何图形的功能。有两个数据流显示修复无效几何体的需要和过程。
输入功能具有无效的几何图形:显式端点位置离参数定义的弧太远,并且在LineString的末尾有一个单独的点。
1。使用无效几何体写入
启用第一个书签并运行工作区。读卡器的单个功能已成功写入InvalidGeometry Microsoft SQL Server Spatial Writer。
但是,会记录警告,从表示无效几何图形的警告消息开始:未能获取“geom”列的SQL Server本机二进制格式。
使用数据检查器检查写入程序:没有几何图形。在Microsoft SQL Server Management Studio中打开表将导致空表。
2。使用几何验证程序
此示例工作区中的geometryvalidator已设置为检测基本的几何完整性问题。通过这种检测方法,几何图形已损坏或格式不正确的特征将被标记。
启用第二个书签并禁用第一个书签,现在,FME以零警告写入数据库。检查数据,现在可以看到修复后的特征几何图形。
注意:传递的和修复的端口都连接到编写器。或者,可以将修复的功能存储在与传递的功能不同的输出中。
?2019安全亚搏在线软件公司|合法的