Example #1
0
        /// <summary>
        /// 绘制椭圆
        /// </summary>
        /// <params name="pEnvelope"></params>
        public void DrawEllipse(IEnvelope pEnvelope)
        {
            IFeatureLayer         pFeatureLayer        = m_pCurrentLayer as IFeatureLayer;
            IFeatureClass         pFeatureClass        = pFeatureLayer.FeatureClass;
            IConstructEllipticArc constructEllipticArc = new EllipticArcClass();

            constructEllipticArc.ConstructEnvelope(pEnvelope);
            IEllipticArc ellipse = constructEllipticArc as IEllipticArc;

            ISegment           segment   = ellipse as ISegment;
            ISegmentCollection pPolyline = new Polyline() as ISegmentCollection;
            object             Missing   = Type.Missing;

            pPolyline.AddSegment(segment, ref Missing, ref Missing);
            IGeometry poly           = pPolyline as IGeometry;
            IFeature  pCircleFeature = pFeatureClass.CreateFeature();

            pCircleFeature.Shape = poly as PolylineClass;
            pCircleFeature.Store();

            //局部刷新
            IInvalidArea pInvalidArea = new InvalidAreaClass();

            pInvalidArea.Add(poly);

            pInvalidArea.Display = m_hookHelper.ActiveView.ScreenDisplay;
            pInvalidArea.Invalidate((short)esriScreenCache.esriAllScreenCaches);
        }
Example #2
0
        public override void OnMouseMove(int Button, int Shift, int X, int Y)
        {
            m_pMovePoint = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
            m_pMovePoint = GIS.GraphicEdit.SnapSetting.getSnapPoint(m_pMovePoint);

            if (m_lMouseDownCount == 1)
            {
                m_bCreated = false;

                IEnvelope pEnv = new EnvelopeClass();
                pEnv.UpperLeft  = m_pFirstPoint;
                pEnv.LowerRight = m_pMovePoint;

                IConstructEllipticArc pEllipArc = new EllipticArcClass();
                pEllipArc.ConstructEnvelope(pEnv);
                m_pEllipticArc = pEllipArc as IEllipticArc;
                m_hookHelper.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewForeground, null, null);
            }
            DataEditCommon.g_pAxMapControl.Focus();
        }
Example #3
0
        public void CanTestEllipticArc()
        {
            IFeatureClass fc = CreateLineClass(_testWs, "CanTestEllipticArc");

            IFeature row1 = fc.CreateFeature();

            IConstructEllipticArc arc = new EllipticArcClass();

            arc.ConstructEnvelope(GeometryFactory.CreateEnvelope(0, 0, 100, 10));

            row1.Shape = CreatePolyLine((ISegment)arc);
            row1.Store();

            var test = new QaMinSegAngle(fc, 0.1, true);

            var runner = new QaContainerTestRunner(1000, test);

            runner.Execute();

            Assert.AreEqual(0, runner.Errors.Count);
        }
        private void DrawEllipse()
        {
            IEnvelope envelope = this.m_mapControl.TrackRectangle();

            if (!envelope.IsEmpty)
            {
                IConstructEllipticArc constructEllipticArc = new EllipticArcClass();
                constructEllipticArc.ConstructEnvelope(envelope);
                ISegment           inSegment         = constructEllipticArc as ISegment;
                ISegmentCollection segmentCollection = new RingClass();
                object             missing           = Type.Missing;
                segmentCollection.AddSegment(inSegment, ref missing, ref missing);
                IRing ring = segmentCollection as IRing;
                ring.Close();
                IGeometryCollection geometryCollection = new PolygonClass();
                geometryCollection.AddGeometry(ring, ref missing, ref missing);
                this.AppendNodeToTreeList(new EllipseElementClass
                {
                    Geometry = (geometryCollection as IGeometry)
                });
            }
        }
Example #5
0
        private void AddEllipseElement()
        {
            IEnvelope pEnvelope = axMapControl1.TrackRectangle();

            if (pEnvelope == null)
            {
                return;
            }

            IConstructEllipticArc pConstructEllipticArc = new  EllipticArcClass();    //建立橢圓的Geometry

            pConstructEllipticArc.ConstructEnvelope(pEnvelope);
            IEllipticArc       pEllipticArc       = (IEllipticArc)pConstructEllipticArc;
            ISegmentCollection pSegmentCollection = new PolygonClass();
            object             Missing            = Type.Missing;

            pSegmentCollection.AddSegment((ISegment)pEllipticArc, ref Missing, ref Missing);
            IGeometry       pGeometry       = pSegmentCollection as IGeometry;
            IEllipseElement pEllipseElement = new EllipseElementClass();
            IElement        pElement        = pEllipseElement as IElement;

            pElement.Geometry = pGeometry;
            AddElement(pElement);
        }
Example #6
0
        public override void OnMouseMove(int Button, int Shift, int X, int Y)
        {
            m_pMovePoint = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
            m_pMovePoint = GIS.GraphicEdit.SnapSetting.getSnapPoint(m_pMovePoint);

            if (m_lMouseDownCount == 1)
            {
                m_bCreated = false;

                IEnvelope pEnv = new EnvelopeClass();
                pEnv.UpperLeft = m_pFirstPoint;
                pEnv.LowerRight = m_pMovePoint;

                IConstructEllipticArc pEllipArc = new EllipticArcClass();
                pEllipArc.ConstructEnvelope(pEnv);
                m_pEllipticArc = pEllipArc as IEllipticArc;
                m_hookHelper.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewForeground, null, null);
            }
            DataEditCommon.g_pAxMapControl.Focus();
        }
Example #7
0
        /// <summary>
        /// ������Բ
        /// </summary>
        /// <params name="pEnvelope"></params>
        public void DrawEllipse(IEnvelope pEnvelope)
        {
            IFeatureLayer pFeatureLayer = m_pCurrentLayer as IFeatureLayer;
            IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
            IConstructEllipticArc constructEllipticArc = new EllipticArcClass();
            constructEllipticArc.ConstructEnvelope(pEnvelope);
            IEllipticArc ellipse = constructEllipticArc as IEllipticArc;

            ISegment segment = ellipse as ISegment;
            ISegmentCollection pPolyline = new Polyline() as ISegmentCollection;
            object Missing = Type.Missing;
            pPolyline.AddSegment(segment, ref Missing, ref Missing);
            IGeometry poly = pPolyline as IGeometry;
            IFeature pCircleFeature = pFeatureClass.CreateFeature();
            pCircleFeature.Shape = poly as PolylineClass;
            pCircleFeature.Store();

            //�ֲ�ˢ��
            IInvalidArea pInvalidArea = new InvalidAreaClass();
            pInvalidArea.Add(poly);

            pInvalidArea.Display = m_hookHelper.ActiveView.ScreenDisplay;
            pInvalidArea.Invalidate((short)esriScreenCache.esriAllScreenCaches);
        }