Esempio n. 1
0
        public FeatureDataRow <TTarget> ConvertRow(IFeatureDataRecord source)
        {
            if (typeof(TSource) == typeof(TTarget) && source is FeatureDataRow)
            {
                return(source as FeatureDataRow <TTarget>);
            }
            TTarget oid = _conversionDelegate((TSource)source.GetOid());
            FeatureDataRow <TTarget> row = _target.NewRow(oid);

            object[] vals = new object[source.FieldCount];
            vals[_oidColumnIndex] = oid;
            source.GetValues(vals);
            row.ItemArray = vals;
            //row.Geometry = source.Geometry.IsValid ? source.Geometry : source.Geometry.Buffer(0.0);
            row.Geometry = source.Geometry;

            return(row);
        }
 public int GetValues(object[] values)
 {
     return(record.GetValues(values));
 }
Esempio n. 3
0
        // FIX_PERF
        private static void setFeatureRowFromIFeatureDataRecord(IFeatureDataRecord srcFeature,
                                                                FeatureDataRow targetFeature,
                                                                ColumnMapper columnMapper,
                                                                ICoordinateTransformation transform,
                                                                IGeometryFactory geoFactory)
        {
            //for (Int32 i = 0; i < srcFeature.FieldCount; i++)
            //{
            //    String colName = srcFeature.GetName(i);
            //    targetFeature[colName] = srcFeature.GetValue(i);
            //}
            if (transform != null)//jd: to prevent case when transform is null -  probably because a test was done earlier. need to check
            {
                if (srcFeature.Geometry.SpatialReference.EqualParams(transform.Target))
                {
                    transform = null;
                }
            }

            srcFeature.GetValues(columnMapper.SourceValues);
            targetFeature.ItemArray = columnMapper.Map();
            targetFeature.Geometry = transform == null
                                         ? srcFeature.Geometry
                                         : transform.Transform(srcFeature.Geometry, geoFactory);
            targetFeature.IsFullyLoaded = targetFeature.IsFullyLoaded || srcFeature.IsFullyLoaded;
        }