修改结构导入程序引擎的行为
本主题仅适用于 ArcGIS for Desktop Standard 和 ArcGIS for Desktop Advanced。
可使用 ArcObjects 和通过指定多个注册表设置来控制宗地结构导入程序引擎的行为。您可以管理如何计算曲线、导入过程中对多少宗地进行内部处理以及是否在数据迁移日志文件中显示导入的开始时间和结束时间。
控制曲线的迁移(通过 ArcObjects)
控制曲线的计算
可以控制在将宗地数据迁移到宗地结构中时如何计算曲线。默认情况下,将使用已迁移宗地的线形状来计算和显示曲线。打开宗地时,将通过曲线尺寸显示曲线。
在迁移过程中,可以设置在两点间计算并显示曲线,或设置使用一点计算并显示曲线。在两点间显示的曲线使用记录值,但是这些曲线将始终被限制在两点之间。使用一点显示的曲线仅使用起点和尺寸。使用一点构造曲线有助于查找数据集中不正确的曲线以及其他曲线问题,因为这将使用记录值从一点开始按原样显示曲线。
设置数据迁移曲线计算方法的操作通过在 ArcObjects 中的 IDECadastralFabric3 界面上设置属性集来完成:
- 声明 IDECadastralFabric3 和 IPropertySet 界面:
- 将 IDECadastralFabric3 界面设置为将向其迁移数据的地籍结构:
- 创建新 Esri 属性集:
- 设置曲线计算方法:
从宗地线形状构造曲线(默认)
object COGOshapetype = "COGOShapeStorage"; m_propset.SetProperty("COGOShape",COGOshapetype);
使用两个点构造曲线
object COGOshapetype = "ConstructionUsingTwoPoints"; m_propset.SetProperty("COGOShape",COGOshapetype);
使用一个点构造曲线
object COGOshapetype = "ConstructionUsingOnePoint"; m_propset.SetProperty("COGOShape",COGOshapetype);
- 在 IDECadastralFabric3 界面上设置属性集:
private IDECadastralFabric3 m_DECadastralFabric;
private IPropertySet m_propset;
m_DECadastralFabric = (IDECadastralFabric3) m_CadFabric;
(m_CadFabric = ICadastralFabricLayer.CadastralFabric)
m_propset = new PropertySetClass();
m_DECadastralFabric.SetPropertySet
(esriCadastralPropertySetType.esriCadastralPropSetImporterLoading, m_propset);
控制长径向线
对一组宗地运行宗地结构最小二乘平差时,具有长径向线的平直曲线会导致平差失败。这是因为,对平直曲线进行轻微幅度的平差将会导致具有长径向线的平直曲线的中心点产生大幅度的平差。可以在 ArcObjects 中的 IDECadastralFabric3 界面上使用属性集并设置属性来防止长径向线影响宗地结构平差的结果。属性会将精度类别 7 指定给长度大于指定距离值(以米为单位)的径向线。如果线或宗地的精度类别被指定为 7,它将不会影响宗地结构平差的结果。
- 声明 IDECadastralFabric3 和 IPropertySet 界面:
- 将 IDECadastralFabric3 界面设置为将向其迁移数据的地籍结构:
- 创建新 Esri 属性集:
- 指定精度类别 7 前,可以为径向线设置最大距离(500 米为默认值):
- 在 IDECadastralFabric3 界面上设置属性集:
private IDECadastralFabric3 m_DECadastralFabric;
private IPropertySet m_propset;
m_DECadastralFabric = (IDECadastralFabric3) m_CadFabric;
(m_CadFabric = ICadastralFabricLayer.CadastralFabric)
m_propset = new PropertySetClass();
m_propset.SetProperty("assignAccCat7ToRadialLineGreaterThanXMeters", 550);
m_DECadastralFabric.SetPropertySet
(esriCadastralPropertySetType.esriCadastralPropSetImporterLoading, m_propset);
转换增密弧线
如果要迁移的数据包含增密弧线,则可将增密弧线转换为已计算容差范围内的真曲线。在 ArcObjects 中的 IDECadastralFabric3 界面上使用属性集并设置两个属性以控制增密弧线的转换。第一个属性为指定系数,将该系数乘以当前 XY 容差(拓扑容差)将得出计算容差。如果各增密弧线折点与真曲线之间的距离小于计算容差,则增密弧线将转换为真曲线。第二个属性定义计算容差上限。如果计算容差很大,则可使用第二个属性定义允许的最大计算容差。
如果在指定容差范围内增密弧线无法形成真曲线,则会将增密弧线作为线串(自然边界)导入。如果增密弧线的折点少于四个,则不会将弧线作为曲线导入,而是将其作为线串(自然边界)导入。
- 声明 IDECadastralFabric3 和 IPropertySet 界面:
- 将 IDECadastralFabric3 界面设置为将向其迁移数据的地籍结构:
- 创建新 Esri 属性集:
- 定义要与 XY 容差(拓扑容差)相乘的系数。默认值为 100:
- 定义允许的最大计算容差。默认值为 0.5 米:
- 在 IDECadastralFabric3 界面上设置属性集:
private IDECadastralFabric3 m_DECadastralFabric;
private IPropertySet m_propset;
m_DECadastralFabric = (IDECadastralFabric3) m_CadFabric;
(m_CadFabric = ICadastralFabricLayer.CadastralFabric)
m_propset = new PropertySetClass();
m_propset.SetProperty("CurveDetectOffsetXMultipliedByDatasetTolerance", 200);
m_propset.SetProperty("CurveDetectOffsetMaxMetersTolerance", 0.7);
m_DECadastralFabric.SetPropertySet
(esriCadastralPropertySetType.esriCadastralPropSetImporterLoading, m_propset);
导入程序设置(通过注册表)
设置内部处理毗连宗地的数量
在导入过程中,宗地将以每次 500 块宗地的速度分批进行内部处理。您可以根据计算机系统的速度将内部批处理数量修改为更高或更低的值。
要更改内部批处理数量,请执行以下步骤:
- 单击 Windows 开始菜单,然后单击运行。
- 在运行对话框中输入 Regedit。
- 导航到 HKEY_CURRENT_USER \\Software\\ESRI\\Desktop10.1\\ArcMap\\Cadastral。
- 右键单击 Cadastral 文件夹,指向新建,然后单击 DWORD 值。
- 输入 MaxBatchParcelsToRead 作为 DWORD 名称。
- 双击 DWORD 进行编辑。
- 选择十进制选项。
- 在数值数据字段中输入一个介于 1 和 995 之间的值。默认值为 500。
- 单击确定创建注册表项。
在日志文件中显示导入的开始时间和结束时间
可以使用 WriteExtendedLogfileTimeInfo 注册表项在数据迁移日志文件中显示开始时间和结束时间。开始时间和结束时间用于监视将一定数量的宗地导入到宗地结构中所花费的时间。默认情况下,不会在日志文件中列出开始时间和结束时间。
- 单击 Windows 开始菜单,然后单击运行。
- 在运行对话框中输入 Regedit。
- 导航到 HKEY_CURRENT_USER \\Software\\ESRI\\Desktop10.1\\ArcMap\\Cadastral。
- 右键单击 Cadastral 文件夹,指向新建,然后单击 DWORD 值。
- 输入 writeExtendedLogfileTimeInfo 作为 DWORD 名称。
- 双击 DWORD 进行编辑。
- 选择十进制选项。
- 在数值数据字段中,输入 1 表示真,输入 0 表示假。
- 单击确定创建注册表项。