private void DoInit() { IFeatureClass fetclass = _class as IFeatureClass; //_featureRenderer switch (fetclass.ShapeType) { case enumShapeType.Point: _featureRender = new SimpleFeatureRenderer(new SimpleMarkerSymbol()); break; case enumShapeType.Polyline: _featureRender = new SimpleFeatureRenderer(new SimpleLineSymbol()); break; case enumShapeType.Polygon: _featureRender = new SimpleFeatureRenderer(new SimpleFillSymbol()); break; default: throw new NotSupportedException("矢量要素层对象暂不支持\"" + fetclass.ShapeType.ToString() + "\"几何类型的数据。"); } if ((_featureRender as BaseFeatureRenderer) != null) { (_featureRender as BaseFeatureRenderer)._name = _name; } string[] fldnames = fetclass.FieldNames; _labelDef = new LabelDef(TryGetKeyField(fldnames, new string[] { "NAME", "名称" }), fldnames); _rotateFieldDef = new RotateFieldDef(TryGetKeyField(fldnames, new string[] { "ANGLE", "角度" }), 0f, fldnames); _featureRender.RotateFieldDef = _rotateFieldDef; _isInited = true; }
private LabelLocation[] GetLabelLocations(Feature fet, ILabelDef labelDef) { switch (labelDef.LabelSource) { case enumLabelSource.Label: if (fet.LabelLocationService == null) { return(null); } return(fet.LabelLocationService.LabelLocations); case enumLabelSource.Annotation: return(fet.Annotations); default: return(null); } }
private void TryInitByFeatureClass() { if (_class == null) { _featureRender = null; _labelDef = null; _rotateFieldDef = null; } else { if (!(_class.DataSource as IFeatureDataSource).IsReady) { (_class.DataSource as FeatureDataSourceBase).TryInit(); } if ((_class.DataSource as IFeatureDataSource).IsReady) { (_class as FeatureClass).GetArgsFromDataSource(); DoInit(); } } }
public FeatureLayer(string name, IFeatureClass fetclass, IFeatureRenderer render, ILabelDef labelDef) : this(name, fetclass, render) { _labelDef = labelDef; }