Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
 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();
         }
     }
 }
Ejemplo n.º 4
0
 public FeatureLayer(string name, IFeatureClass fetclass, IFeatureRenderer render, ILabelDef labelDef)
     : this(name, fetclass, render)
 {
     _labelDef = labelDef;
 }