file-geodatabase-api
file-geodatabase-api copied to clipboard
not support Chinese attribute field?
当然支持
public class FgdbDatasetRow : IDatasetRow { private readonly Row _row; private readonly ISpatialReference _spatialReference;
public FgdbDatasetRow(Row row, ISpatialReference spatialReference)
{
_row = row;
_spatialReference = spatialReference;
}
public bool IsNull(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.IsNull(fieldName);
}
public string GetString(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.GetString(fieldName);
}
public short GetShort(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.GetShort(fieldName);
}
public int GetInteger(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.GetInteger(fieldName);
}
public DateTime GetDate(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.GetDate(fieldName);
}
public double GetDouble(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.GetDouble(fieldName);
}
public float GetFloat(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.GetFloat(fieldName);
}
public int GetOid(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.GetOID();
}
public IGeometry GetGeometry()
{
ThrowIfRowNotInitialized();
var geometry = _row.GetGeometry().ToGeneralGeometry(_spatialReference);
return geometry;
}
public string GetGUID(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.GetGUID(fieldName).ToString();
}
public string GetGlobalID(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.GetGlobalID().ToString();
}
public string GetXML(string fieldName)
{
ThrowIfRowNotInitialized();
return _row.GetXML(fieldName);
}
/// <summary>
/// 获取二进制的几何属性
/// </summary>
/// <param name="fieldName"></param>
/// <returns></returns>
public byte[] GetGeoBinary()
{
ThrowIfRowNotInitialized();
return _row.GetGeometry().shapeBuffer;
}
private void ThrowIfRowNotInitialized()
{
if (_row == null)
{
throw new NullReferenceException("Row was not initialized");
}
}
}