Esempio n. 1
0
            public static FeatureProxy Create([NotNull] IFeature feature,
                                              [CanBeNull] UniqueIdProvider uniqueIdProvider)
            {
                UniqueId uniqueId = uniqueIdProvider != null
                                                            ? new UniqueId(feature, uniqueIdProvider)
                                                            : null;

                esriGeometryType geometryType = feature.Shape.GeometryType;

                FeatureProxy result;

                switch (geometryType)
                {
                case esriGeometryType.esriGeometryMultiPatch:
                    result = new MultiPatchFeatureProxy(feature, (IMultiPatch)feature.Shape,
                                                        uniqueId);
                    break;

                case esriGeometryType.esriGeometryPolygon:
                case esriGeometryType.esriGeometryPolyline:
                    result = new PolycurveFeatureProxy(feature, (IPolycurve)feature.Shape,
                                                       uniqueId);
                    break;

                default:
                    result = new AnyFeatureProxy(feature, feature.Shape, uniqueId);
                    break;
                }

                return(result);
            }
Esempio n. 2
0
 public void UpdateFeature([NotNull] IFeature feature,
                           [CanBeNull] UniqueIdProvider uniqueIdProvider)
 {
     if (_feature == null)
     {
         _feature = GetFeatureProxy(feature, uniqueIdProvider);
     }
 }
Esempio n. 3
0
        private static FeatureProxy GetFeatureProxy(
            [NotNull] IFeature feature,
            [CanBeNull] UniqueIdProvider uniqueIdProvider)
        {
            FeatureProxy result = feature as FeatureProxy;

            if (result != null)
            {
                return(result);
            }

            result = FeatureProxyFactory.Create(feature, uniqueIdProvider);

            GeometryUtils.AllowIndexing(feature.Shape);

            return(result);
        }
Esempio n. 4
0
 public CachedRow([NotNull] IFeature feature,
                  [CanBeNull] UniqueIdProvider uniqueIdProvider = null)
     : this(GetFeatureProxy(feature, uniqueIdProvider))
 {
 }
Esempio n. 5
0
 public UniqueId([NotNull] IFeature feature,
                 [NotNull] UniqueIdProvider uniqueIdProvider)
 {
     _uniqueIdProvider = uniqueIdProvider;
     Id = uniqueIdProvider.GetUniqueId(feature);
 }