Esempio n. 1
0
        public moFeature Clone()
        {
            moGeometryTypeConstant sShapeType  = _ShapeType;
            moGeometry             sGeometry   = null;
            moAttributes           sAttributes = _Attributes.Clone();

            if (_ShapeType == moGeometryTypeConstant.Point)
            {
                moPoint sPoint = (moPoint)_Geometry;
                sGeometry = sPoint.Clone();
            }
            else if (_ShapeType == moGeometryTypeConstant.MultiPolyline)
            {
                moMultiPolyline sMultiPolyline = (moMultiPolyline)_Geometry;
                sGeometry = sMultiPolyline.Clone();
            }
            else if (_ShapeType == moGeometryTypeConstant.MultiPolygon)
            {
                moMultiPolygon sMultiPolygon = (moMultiPolygon)_Geometry;
                sGeometry = sMultiPolygon.Clone();
            }
            moFeature sFeature = new moFeature(sShapeType, sGeometry, sAttributes);

            return(sFeature);
        }
Esempio n. 2
0
        /// <summary>
        /// 绘制所有选择要素
        /// </summary>
        /// <param name="g"></param>
        /// <param name="extent"></param>
        /// <param name="mapScale"></param>
        /// <param name="dpm"></param>
        /// <param name="mpu"></param>
        /// <param name="symbol"></param>
        internal void DrawSelectedFeatures(Graphics g, moRectangle extent, double mapScale, double dpm, double mpu, moSymbol symbol)
        {
            //判断是否位于绘制范围内,不是,则绘制
            Int32 sFeatureCount = _SelectedFeatures.Count;

            for (Int32 i = 0; i < sFeatureCount; i++)
            {
                moFeature sFeature = _SelectedFeatures.GetItem(i);
                if (IsFeatureInExtent(sFeature, extent) == true)
                {
                    moGeometry sGeometry = sFeature.Geometry;
                    moMapDrawingTools.DrawGeometry(g, extent, mapScale, dpm, mpu, sGeometry, symbol);
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 绘制所有要素
        /// </summary>
        /// <param name="g">绘图对象</param>
        /// <param name="extent">绘制范围(地图坐标)</param>
        /// <param name="mapScale">地图比例尺的倒数</param>
        /// <param name="dpm">每米对应的点数</param>
        /// <param name="mpu">地图坐标单位对应的米数</param>
        internal void DrawFeatures(Graphics g, moRectangle extent, double mapScale, double dpm, double mpu)
        {
            //(1)为所有要素配置符号
            SetFeatureSymbols();
            //(2)判断是否位于绘制范围内,如是,则绘制
            Int32 sFeatureCount = _Features.Count;

            for (Int32 i = 0; i < sFeatureCount; i++)
            {
                moFeature sFeature = _Features.GetItem(i);
                if (IsFeatureInExtent(sFeature, extent) == true)
                {
                    moGeometry sGeometry = sFeature.Geometry;
                    moSymbol   sSymbol   = sFeature.Symbol;
                    moMapDrawingTools.DrawGeometry(g, extent, mapScale, dpm, mpu, sGeometry, sSymbol);
                }
            }
        }
Esempio n. 4
0
 private moSymbol _Symbol;         //配置的符号
 #endregion
 #region 构造函数
 public moFeature(moGeometryTypeConstant shapeType, moGeometry geometry, moAttributes attributes)
 {
     _ShapeType  = shapeType;
     _Geometry   = geometry;
     _Attributes = attributes;
 }
Esempio n. 5
0
 internal static void DrawGeometry(Graphics g, moRectangle extent, double mapScale, double dpm, double mpu, moGeometry geometry, moSymbol symbol)
 {
     if (extent == null)
     {
         return;
     }
     if (geometry == null)
     {
         return;
     }
     if (symbol == null)
     {
         return;
     }
     if (geometry.GetType() == typeof(moPoint))
     {
         moPoint sPoint = (moPoint)geometry;
         DrawPoint(g, extent, mapScale, dpm, mpu, sPoint, symbol);
     }
     else if (geometry.GetType() == typeof(moMultiPolyline))
     {
         moMultiPolyline sMultiPolyline = (moMultiPolyline)geometry;
         DrawMultiPolyline(g, extent, mapScale, dpm, mpu, sMultiPolyline, symbol);
     }
     else if (geometry.GetType() == typeof(moMultiPolygon))
     {
         moMultiPolygon sMultiPolygon = (moMultiPolygon)geometry;
         DrawMultiPolygon(g, extent, mapScale, dpm, mpu, sMultiPolygon, symbol);
     }
 }