Exemplo 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;
        }
Exemplo n.º 2
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();
         }
     }
 }
Exemplo n.º 3
0
        public static IFeatureLayer FromXElement(XElement ele)
        {
            if (ele == null)
            {
                return(null);
            }
            string name               = ele.Attribute("name").Value;
            bool   visible            = bool.Parse(ele.Attribute("visible").Value);
            bool   enableDisplayLevel = true;

            if (ele.Attribute("enabledisplayLevel") != null)
            {
                enableDisplayLevel = bool.Parse(ele.Attribute("enabledisplayLevel").Value);
            }
            ScaleRange       displayScaleRange = ScaleRange.FromXElement(ele.Element("DisplayScaleRange"));
            LabelDef         labelDef          = AgileMap.Core.LabelDef.FromXElement(ele.Element("LabelDef"));
            IFeatureRenderer renderer          = PersistObject.ReflectObjFromXElement(ele.Element("Renderer")) as IFeatureRenderer;
            RotateFieldDef   rotateFieldDef    = RotateFieldDef.FromXElement(ele.Element("RotateField"));
            IFeatureClass    fetclass          = AgileMap.Core.FeatureClass.FromXElement(ele.Element("FeatureClass"));

            if (fetclass == null)
            {
                return(null);
            }
            fetclass.Name = name;
            IFeatureLayer lyr = new FeatureLayer(name, fetclass, renderer, labelDef);

            lyr.RotateFieldDef              = rotateFieldDef;
            lyr.DisplayScaleRange           = displayScaleRange;
            lyr.EnabledDisplayLevel         = enableDisplayLevel;
            (lyr as ILayerDrawable).Visible = visible;
            //
            if (ele.Attribute("twostepflag") != null)
            {
                string twoStepflagstring = ele.Attribute("twostepflag").Value;
                lyr.IsTwoStepDraw = bool.Parse(twoStepflagstring);
            }
            //
            return(lyr);
        }
 public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 {
     try
     {
         if (!(value is IFeatureRenderer))
         {
             return(value);
         }
         RotateFieldDef             rotateFieldDef = (value as IFeatureRenderer).RotateFieldDef;
         IFeatureRenderEnvironment  env            = (value as BaseFeatureRenderer)._environment;
         IFeatureRenderer           retRender      = null;
         IWindowsFormsEditorService edSvc          = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
         if (edSvc != null)
         {
             using (frmFeatureRendererEditor frm = new frmFeatureRendererEditor(context.Instance as IFeatureLayer))
             {
                 if (edSvc.ShowDialog(frm) == DialogResult.OK)
                 {
                     retRender = (frm as IFeatureRendererProvider).Renderer;
                     if (retRender == null)
                     {
                         return(value);
                     }
                     retRender.RotateFieldDef = rotateFieldDef;
                     (retRender as BaseFeatureRenderer).SetFeatureLayerEnvironment(env);
                     return(retRender);
                 }
                 else
                 {
                     return(value);
                 }
             }
         }
         return(value);
     }
     finally
     {
     }
 }