Пример #1
0
        /// <summary>
        /// 鼠标按下事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void mapControl_OnMouseDown(object sender, IGlobeControlEvents_OnMouseDownEvent e)
        {
            if (e.button != 1)
            {
                return;
            }
            MapLngLat lnglat = this.SceneToGeographyPoint(e.x, e.y);

            if (kml == null)
            {
                kml = new Kml();
                kml.Placemark.Name    = "绘制圆" + Utils.Index;
                circleKml             = new KmlCircle();
                circleKml.Description = "手动绘制的圆";
                circleKml.FillColor   = Color.FromArgb(70, Color.Orange);
                circleKml.StrokeColor = Color.FromArgb(70, Color.Red);
                circleKml.StrokeWidth = 2;
                circleKml.Rasterize   = true;
                circleKml.Position    = lnglat;
            }
            else
            {
                circleKml.RandomPosition = lnglat;
                drawn = layer.AddElement(kml, out circleElement);
            }
        }
Пример #2
0
        /// <summary>
        /// 鼠标按下事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void mapControl_OnMouseDown(object sender, IGlobeControlEvents_OnMouseDownEvent e)
        {
            if (e.button == 1) //鼠标左键
            {
                MapLngLat lnglat = this.SceneToGeographyPoint(e.x, e.y);
                lnglat.Alt = lnglat.Alt * -1;
                pointList.Add(lnglat);
                if (pointList.Count == 2)
                {
                    kml = new Kml();
                    kml.Placemark.Name = "辅助线";
                    KmlLineString lineKml = new KmlLineString();
                    lineKml.Rasterize    = true;
                    lineKml.Description  = "辅助线";
                    lineKml.PositionList = pointList;
                    lineKml.Color        = Color.FromArgb(70, Color.Orange);
                    kml.Placemark.Graph  = lineKml;
                    layer.AddElement(kml);

                    kml.Placemark.Name     = "绘制面" + Utils.Index;
                    polygonKml             = new KmlPolygon();
                    polygonKml.Rasterize   = true;
                    polygonKml.Description = "手动绘制的面";
                    polygonKml.FillColor   = Color.FromArgb(70, Color.Orange);
                    kml.Placemark.Graph    = polygonKml;
                }
                else if (pointList.Count == 3)                      //更新面
                {
                    layer.RemoveElement("辅助线");
                    polygonKml.PositionList = pointList;
                    kml.Placemark.Graph     = polygonKml;
                    drawn = layer.AddElement(kml, out polygonElement);
                }
                else if (pointList.Count > 3)
                {
                    layer.RemoveElement(polygonElement);
                    polygonKml.PositionList = pointList;
                    kml.Placemark.Graph     = polygonKml;
                    drawn = layer.AddElement(kml, out polygonElement);
                }
                layer.Refresh();
            }
        }
Пример #3
0
 private void axGlobeControl1_OnMouseDown(object sender, IGlobeControlEvents_OnMouseDownEvent e)
 {
 }