Beispiel #1
0
        // 鼠标移动事件
        private void gmapControl_MouseMove(object sender, MouseEventArgs e)
        {
            if (isLeftButtonDown == false)
            {
                return;
            }

            if (bOnMarkerEnter == true)
            {
                bOnMarkerEnter             = false;
                gmapControl.OnMarkerEnter -= gmapControl_OnMarkerEnter;
            }
            if (bOnMarkerLeave == true)
            {
                bOnMarkerLeave             = false;
                gmapControl.OnMarkerLeave -= gmapControl_OnMarkerLeave;
            }

            if (editType == 0)
            {
                var lngLat = gmapControl.FromLocalToLatLng(e.X, e.Y);
                circleMarker.Position = lngLat;
                gmapControl.Cursor    = Cursors.SizeAll;
                // 实时更新圆心坐标
                centerPoint = circleMarker.Position;
            }
            else if (editType == 1)
            {
                if (currentEditPoint == null || currIndex == -1)
                {
                    return;
                }

                var lngLat = gmapControl.FromLocalToLatLng(e.X, e.Y);

                if (currIndex == 0 || currIndex == 2)
                {
                    lngLat.Lng = currentEditPoint.Position.Lng;
                }
                else if (currIndex == 1 || currIndex == 3)
                {
                    lngLat.Lat = currentEditPoint.Position.Lat;
                }

                currentEditPoint.Position = lngLat;
                double distance = gmapControl.MapProvider.Projection.GetDistance(centerPoint, lngLat) * 1000;
                circleMarker.Position = centerPoint;
                circleElement.UpdatePosition(distance);
                gmapControl.UpdateMarkerLocalPosition(circleMarker);

                // 实时更新半径
                radius = distance;
            }

            RemoveEditMarker();
            AddEditMarker();
        }
Beispiel #2
0
 /// <summary>
 /// 执行操作
 /// </summary>
 public void RunCommond()
 {
     overlay = new GMapOverlay("edit_layer");
     for (int i = 0; i < route.Points.Count; i++)
     {
         EditMarker marker = new EditMarker(route.Points[i]);
         overlay.Markers.Add(marker);
         gmapControl.UpdateMarkerLocalPosition(marker);
     }
     gmapControl.Overlays.Add(overlay);
     Utils.bPublishEvent        = false;
     gmapControl.OnRouteEnter  += new RouteEnter(gmapControl_OnRouteEnter);
     gmapControl.DoubleClick   += gmapControl_DoubleClick;
     gmapControl.OnMarkerEnter += new MarkerEnter(gmapControl_OnMarkerEnter);
     gmapControl.KeyDown       += new KeyEventHandler(gmapControl_KeyDown);
 }
        public void DrawMarker(ref GMapControl gMapControl, PointLatLng point)
        {
            GMapMarker marker = new GMarkerGoogle
                                (
                new PointLatLng(point.Lat, point.Lng),
                GMarkerGoogleType.yellow_small
                                );

            m_overlayMarkers.Markers.Add(marker);
            gMapControl.Overlays.Add(m_overlayMarkers);
            gMapControl.UpdateMarkerLocalPosition(marker);
        }
Beispiel #4
0
        /// <summary>
        /// 执行命令:画端点,在移动端点的时候改变多边形的形状
        /// </summary>
        public void RunCommond()
        {
            if (polygon == null)
            {
                return;
            }
            overlay = new GMapOverlay("draw_layer");
            for (int i = 0; i < polygon.Points.Count; i++)
            {
                EditMarker marker = new EditMarker(polygon.Points[i]);
                marker.Tag = "编辑点" + i;
                overlay.Markers.Add(marker);
                gmapControl.UpdateMarkerLocalPosition(marker);
            }

            gmapControl.Overlays.Add(overlay);
            Utils.bPublishEvent         = false;
            gmapControl.OnPolygonEnter += gmapControl_OnPolygonEnter;
            gmapControl.OnPolygonLeave += gmapControl_OnPolygonLeave;
            gmapControl.OnMarkerEnter  += gmapControl_OnMarkerEnter;
            gmapControl.DoubleClick    += gmapControl_DoubleClick;
            gmapControl.KeyDown        += new KeyEventHandler(gmapControl_KeyDown);
            gmapControl.MouseDown      += gmapControl_MouseDown;
        }