コード例 #1
0
        /// <summary>
        /// 添加编辑点
        /// </summary>
        private void InitMarker()
        {
            var    pointDot    = circleArcMap.GetCenterDot();
            IPoint centerPoint = new PointClass()
            {
                X = pointDot.Lng, Y = pointDot.Lat
            };
            bool markerBeing = false;
            int  i           = 1;

            for (float ang = 0; ang <= 270; ang += 90)
            {
                var point = GetPointByDistanceAndAngle(circleArcMap.GetRadius(), centerPoint, ang);
                editPoint = new Model.EditMarker(mapControl, layer);
                markerList.Add(editPoint);
                if (!markerBeing)
                {
                    editPoint.MarkerMouseDownEvent += new Model.EditMarker.MarkerMouseDownDelegate(editPoint_MarkerMouseDownEvent);
                    editPoint.MarkerMouseMoveEvent += new Model.EditMarker.MarkerMouseMoveDelegate(editPoint_MarkerMouseMoveEvent);
                }
                editPoint.InitMarker(i.ToString(), point);
                (layer as CompositeGraphicsLayerClass).AddElement(editPoint, 0);
                markerBeing = true;
                i++;
            }
            editPoint    = new Model.EditMarker(mapControl, layer);
            centerMarker = new Model.EditMarker(mapControl, layer);
            editPoint.InitMarker("s", centerPoint);
            centerMarker = editPoint;
            (layer as CompositeGraphicsLayerClass).AddElement(editPoint, 0);
            mapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, circleElement, null);
        }
コード例 #2
0
ファイル: EditCircleEx.cs プロジェクト: AnuoF/MapFrame
        /// <summary>
        /// 获取270度点的位置
        /// </summary>
        /// <returns></returns>
        private PointLatLng Get270RandomPoint()
        {
            MapLngLat   centerMapPoint = circleElement.GetCenterDot();
            double      seg            = Math.PI * 270 / 180;
            double      a            = centerMapPoint.Lng + circleElement.GetRadius() * Math.Cos(seg) / 100000;
            double      b            = centerMapPoint.Lat + circleElement.GetRadius() * Math.Sin(seg) / 100000;
            PointLatLng randomLatLng = new PointLatLng(b, a);

            return(randomLatLng);
        }