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); }
public void UpdateFeature([NotNull] IFeature feature, [CanBeNull] UniqueIdProvider uniqueIdProvider) { if (_feature == null) { _feature = GetFeatureProxy(feature, uniqueIdProvider); } }
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); }
public CachedRow([NotNull] IFeature feature, [CanBeNull] UniqueIdProvider uniqueIdProvider = null) : this(GetFeatureProxy(feature, uniqueIdProvider)) { }
public UniqueId([NotNull] IFeature feature, [NotNull] UniqueIdProvider uniqueIdProvider) { _uniqueIdProvider = uniqueIdProvider; Id = uniqueIdProvider.GetUniqueId(feature); }