Tomas,
The big DBF file is caused by unknown length of certain dbf column. For instance, “NVarchar” is a kind of SQLServer type, it’s hard to know how long the column is, and so I take the maxlength. I have updated the code, please replace the GetDbfType method with the following:
private DbfColumn GetDbfType(FeatureSourceColumn featureSourceColumn)
{
int decimalLength = featureSourceColumn.MaxLength < 6 ? featureSourceColumn.MaxLength : 6;
DbfColumn col;
switch (featureSourceColumn.TypeName.ToLower())
{
case "bigint":
case "int":
col = new DbfColumn(featureSourceColumn.ColumnName, DbfColumnType.Integer, featureSourceColumn.MaxLength, 0);
break;
case "float":
case "double":
col = new DbfColumn(featureSourceColumn.ColumnName, DbfColumnType.Double, featureSourceColumn.MaxLength, decimalLength);
break;
case "date":
col = new DbfColumn(featureSourceColumn.ColumnName, DbfColumnType.Date, featureSourceColumn.MaxLength, decimalLength);
break;
case "memo":
col = new DbfColumn(featureSourceColumn.ColumnName, DbfColumnType.Memo, featureSourceColumn.MaxLength, decimalLength);
break;
default:
col = new DbfColumn(featureSourceColumn.ColumnName, DbfColumnType.String, 50, 0);
break;
}
return col;
}
The number of links processed by RtgRoutingSource can be calculated by:
Number of links = ((Bytes of .rtx file) – 16) / 49
Thanks,
Johnny