コード例 #1
0
 public moField(string name, moValueTypeConstant valueType)
 {
     _Name      = name;
     _AliasName = name;
     _ValueType = valueType;
 }
コード例 #2
0
ファイル: moMapLayer.cs プロジェクト: IRAN96/MiniTerra
        private void SetFeatureSymbols()
        {
            Int32 sFeatureCount = _Features.Count;

            if (_Renderer.RendererType == moRendererTypeConstant.Simple)
            {
                moSimpleRenderer sRenderer = (moSimpleRenderer)_Renderer;
                for (Int32 i = 0; i <= sFeatureCount - 1; i++)
                {
                    _Features.GetItem(i).Symbol = sRenderer.Symbol;
                }
            }
            else if (_Renderer.RendererType == moRendererTypeConstant.UniqueValue)
            {
                moUniqueValueRenderer sRenderer = (moUniqueValueRenderer)_Renderer;
                string sFieldName  = sRenderer.Field;
                Int32  sFieldIndex = _AttributeFields.FindField(sFieldName);
                if (sFieldIndex >= 0)
                {
                    for (Int32 i = 0; i <= sFeatureCount - 1; i++)
                    {
                        string sValueString = GetValueString(_Features.GetItem(i).Attributes.GetItem(sFieldIndex));
                        _Features.GetItem(i).Symbol = sRenderer.FindSymbol(sValueString);
                    }
                }
                else
                {
                    for (Int32 i = 0; i <= sFeatureCount - 1; i++)
                    {
                        _Features.GetItem(i).Symbol = null;
                    }
                }
            }
            else if (_Renderer.RendererType == moRendererTypeConstant.ClassBreaks)
            {
                moClassBreaksRenderer sRenderer = (moClassBreaksRenderer)_Renderer;
                string sFieldName              = sRenderer.Field;
                Int32  sFieldIndex             = _AttributeFields.FindField(sFieldName);
                moValueTypeConstant sValueType = _AttributeFields.GetItem(sFieldIndex).ValueType;
                if (sFieldIndex >= 0)
                {
                    for (Int32 i = 0; i <= sFeatureCount - 1; i++)
                    {
                        double sValue = 0;
                        if (sValueType == moValueTypeConstant.dInt16)
                        {
                            sValue = (Int16)_Features.GetItem(i).Attributes.GetItem(sFieldIndex);
                        }
                        else if (sValueType == moValueTypeConstant.dInt32)
                        {
                            sValue = (Int32)_Features.GetItem(i).Attributes.GetItem(sFieldIndex);
                        }
                        else if (sValueType == moValueTypeConstant.dInt64)
                        {
                            sValue = (Int64)_Features.GetItem(i).Attributes.GetItem(sFieldIndex);
                        }
                        else if (sValueType == moValueTypeConstant.dSingle)
                        {
                            sValue = (float)_Features.GetItem(i).Attributes.GetItem(sFieldIndex);
                        }
                        else if (sValueType == moValueTypeConstant.dDouble)
                        {
                            sValue = (double)_Features.GetItem(i).Attributes.GetItem(sFieldIndex);
                        }
                        else
                        {
                            throw new Exception("Invalid value type of field " + sFieldName);
                        }

                        _Features.GetItem(i).Symbol = sRenderer.FindSymbol(sValue);
                    }
                }
                else
                {
                    for (Int32 i = 0; i <= sFeatureCount - 1; i++)
                    {
                        _Features.GetItem(i).Symbol = null;
                    }
                }
            }
            else
            {
                throw new Exception("Invalid renderer type!");
            }
        }