public Vector(NAMEkey _namekey, DataRecord _VectorRecord) { namekey = _namekey; VectorRecord = _VectorRecord; var vrpt = _VectorRecord.Fields.GetFieldByTag("VRPT"); if (vrpt != null) { enhVectorPtrs = new VectorRecordPointer(vrpt.subFields); } var attv = _VectorRecord.Fields.GetFieldByTag("ATTV"); if (attv != null) { Attributes = GetAttributes(attv); } }
public Feature(NAMEkey _namekey, DataRecord _FeatureRecord) { namekey = _namekey; FeatureRecord = _FeatureRecord; var fspt = _FeatureRecord.Fields.GetFieldByTag("FSPT"); if (fspt != null) { enhVectorPtrs = new VectorRecordPointer(fspt.subFields); } var ffpt = _FeatureRecord.Fields.GetFieldByTag("FFPT"); if (ffpt != null) { enhFeaturePtrs = new FeatureObjectPointer(ffpt.subFields); } // FRID : Feature Record Identifier var frid = _FeatureRecord.Fields.GetFieldByTag("FRID"); if (frid != null) { Primitive = (GeometricPrimitive)frid.subFields.GetUInt32(0, "PRIM"); Group = frid.subFields.GetUInt32(0, "GRUP"); ObjectCode = (S57Obj)frid.subFields.GetUInt32(0, "OBJL"); } // FOID : Feature Object Identifier var foid = _FeatureRecord.Fields.GetFieldByTag("FOID"); if (foid != null) { subFieldRow = foid.subFields.Values[0]; tagLookup = foid.subFields.TagIndex; agen = subFieldRow.GetUInt32(tagLookup["AGEN"]); fidn = subFieldRow.GetUInt32(tagLookup["FIDN"]); fids = subFieldRow.GetUInt32(tagLookup["FIDS"]); lnam = new LongName(agen, fidn, fids); } // ATTF : Attributes var attr = _FeatureRecord.Fields.GetFieldByTag("ATTF"); if (attr != null) { Attributes = Vector.GetAttributes(attr); } // NATF : National attributes NATF. var natf = _FeatureRecord.Fields.GetFieldByTag("NATF"); if (natf != null) { var natfAttr = Vector.GetAttributes(natf); if (Attributes != null) { foreach (var entry in natfAttr) { Attributes.Add(entry.Key, entry.Value); } } else { Attributes = natfAttr; } } }