Example #1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="mapObject">地图对象</param>
 /// <param name="_mapLogic">地图逻辑类</param>
 public ToolBox(object mapObject, IMapLogic _mapLogic)
 {
     mapLogic   = _mapLogic;
     mapControl = mapObject as AxHOSOFTMapControl;
     //measureDistanceTool = new MeasureDistance(gmapControl);
     //measureAreaTool = new MeasureArea(gmapControl);
     //measureAngleTool = new MeasureAngle(gmapControl);
     //selectTool = new SelectElementEx(gmapControl, _mapLogic);
 }
Example #2
0
 /// <summary>
 /// 释放
 /// </summary>
 public void Dispose()
 {
     ReleaseCommond();
     CommondExecutedEvent = null;
     moveObj    = 0;
     element    = null;
     mapControl = null;
     keyDown    = false;
 }
Example #3
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void Dispose()
 {
     mapControl    = null;
     mapLogic      = null;
     isFinish      = false;
     isControl     = false;
     circleElement = null;
     centerPoint   = null;
     layer         = null;
 }
Example #4
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void Dispose()
 {
     listPoints.Clear();
     listPoints     = null;
     tempName       = string.Empty;
     polygonElement = null;
     mapLogic       = null;
     mapControl     = null;
     isFinish       = false;
     isControl      = false;
 }
Example #5
0
 /// <summary>
 /// 释放工具
 /// </summary>
 public void Dispose()
 {
     ReleaseCommond();
     selectElements.Clear();
     selectElements       = null;
     elementObj           = new object();
     moveObj              = 0;
     mapControl           = null;
     CommondExecutedEvent = null;
     mapLogic             = null;
 }
Example #6
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void Dispose()
 {
     listPoints.Clear();
     listPoints  = null;
     mapControl  = null;
     lineElement = null;
     isFinish    = false;
     isControl   = false;
     layer       = null;
     mapLogic    = null;
 }
Example #7
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void Dispose()
 {
     if (textCtrl != null)
     {
         textCtrl.Dispose();
     }
     downPoint   = null;
     isControl   = true;
     textElement = null;
     mapLogic    = null;
     layer       = null;
     mapControl  = null;
 }
Example #8
0
        /// <summary>
        /// 初始化地图控件
        /// </summary>
        private void InitMapControl()
        {
            this.axMapControl = new AxHOSOFTMapControlLib.AxHOSOFTMapControl();
            ((System.ComponentModel.ISupportInitialize)(this.axMapControl)).BeginInit();

            this.axMapControl.Dock     = System.Windows.Forms.DockStyle.Fill;
            this.axMapControl.Enabled  = true;
            this.axMapControl.Location = new System.Drawing.Point(0, 25);
            this.axMapControl.Name     = "axHOSOFTMapControl1";
            //this.axHOSOFTMapControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axHOSOFTMapControl1.OcxState")));
            this.axMapControl.Size     = new System.Drawing.Size(638, 463);
            this.axMapControl.TabIndex = 1;

            ((System.ComponentModel.ISupportInitialize)(this.axMapControl)).EndInit();
        }
Example #9
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="kml">kml对象</param>
        /// <param name="_mapControl">地图控件</param>
        public Circle_Mgis(Kml kml, AxHOSOFTMapControl _mapControl)
        {
            this.mapControl = _mapControl;
            KmlCircle kmlCircle = kml.Placemark.Graph as KmlCircle;

            if (kmlCircle.Position == null || kmlCircle.RandomPosition == null || kml.Placemark.Name == string.Empty)
            {
                return;
            }
            listPoint = new List <MapLngLat>();
            listPoint.Add(kmlCircle.Position);
            listPoint.Add(kmlCircle.RandomPosition);

            float[] vertex  = new float[4];
            IntPtr  ptrVert = Marshal.AllocHGlobal(sizeof(float) * 4);

            vertex[0] = (float)listPoint[0].Lng;
            vertex[1] = (float)listPoint[0].Lat;
            vertex[2] = (float)listPoint[1].Lng;
            vertex[3] = (float)listPoint[1].Lat;
            Marshal.Copy(vertex, 0, ptrVert, vertex.Length);
            this.symbolName = kml.Placemark.Name;

            mapControl.MgsDrawLineSymByJBID(symbolName, 16, (ulong)(ptrVert.ToInt64()), 2);

            mapControl.MgsUpdateSymFillColor(symbolName, kmlCircle.FillColor.R, kmlCircle.FillColor.G, kmlCircle.FillColor.B, kmlCircle.FillColor.A);
            mapControl.MgsUpdateSymColor(symbolName, kmlCircle.StrokeColor.R, kmlCircle.StrokeColor.G, kmlCircle.StrokeColor.B, kmlCircle.StrokeColor.A);
            mapControl.MgsUpdateSymLineWidth(symbolName, kmlCircle.StrokeWidth); //轮廓大小
            mapControl.update();                                                 //刷新

            Marshal.FreeHGlobal(ptrVert);

            this.ElementType = ElementTypeEnum.Circle;
            bFillColor       = kmlCircle.FillColor;   //填充颜色
            bOutLineColor    = kmlCircle.StrokeColor; //轮廓颜色
            this.width       = kmlCircle.StrokeWidth; //轮廓大小

            flashTimer          = new Timer();
            flashTimer.Elapsed += new ElapsedEventHandler(flashTimer_Elapsed);
            flashTimer.Interval = 500;
        }
Example #10
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="kml">kml 对象</param>
        /// <param name="_mapControl">地图控件</param>
        public Text_Mgis(Kml kml, AxHOSOFTMapControl _mapControl)
        {
            this.mapControl = _mapControl;
            KmlText kmlText = kml.Placemark.Graph as KmlText;

            if (kml.Placemark.Name == null || kmlText.Content == string.Empty)
            {
                return;
            }
            this.symbolName   = kml.Placemark.Name;
            this.textPosition = kmlText.Position;
            this.context      = kmlText.Content;
            System.Drawing.Color c = kmlText.Color;
            mapControl.MgsDrawSymTextByJBID(symbolName, context, (float)kmlText.Position.Lng, (float)kmlText.Position.Lat);
            mapControl.MgsUpdateSymSize(symbolName, (float)kmlText.Size);
            mapControl.MgsUpdateSymColor(symbolName, c.R, c.G, c.B, c.A);
            mapControl.update();
            this.ElementType    = ElementTypeEnum.Text;
            flashTimer          = new Timer();
            flashTimer.Elapsed += new ElapsedEventHandler(flashTimer_Elapsed);
            flashTimer.Interval = 500;
        }
Example #11
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="kml">Kml对象</param>
        /// <param name="_mapControl">地图控件</param>
        public Polygon_Mgis(Kml kml, AxHOSOFTMapControl _mapControl)
        {
            this.mapControl = _mapControl;
            MapFrame.Core.Model.KmlPolygon kmlPolygon = kml.Placemark.Graph as MapFrame.Core.Model.KmlPolygon;
            if (kml.Placemark.Name == null || kmlPolygon.PositionList == null)
            {
                return;
            }
            this.symbolName = kml.Placemark.Name;
            this.listPoint  = kmlPolygon.PositionList;

            int count = kmlPolygon.PositionList.Count;

            float[] vertex  = new float[count * 2];
            IntPtr  ptrVert = Marshal.AllocHGlobal(sizeof(float) * count * 2);

            for (int i = 0; i < count; i++)
            {
                vertex[2 * i]     = (float)listPoint[i].Lng;
                vertex[2 * i + 1] = (float)listPoint[i].Lat;
            }
            Marshal.Copy(vertex, 0, ptrVert, vertex.Length);
            mapControl.MgsDrawLineSymByJBID(symbolName, 11, (ulong)(ptrVert.ToInt64()), count);

            mapControl.MgsUpdateSymFillColor(symbolName, kmlPolygon.FillColor.R, kmlPolygon.FillColor.G, kmlPolygon.FillColor.B, kmlPolygon.FillColor.A);
            mapControl.MgsUpdateSymColor(symbolName, kmlPolygon.OutLineColor.R, kmlPolygon.OutLineColor.G, kmlPolygon.OutLineColor.B, kmlPolygon.OutLineColor.A);
            mapControl.update();//刷新
            Marshal.FreeHGlobal(ptrVert);

            this.ElementType   = ElementTypeEnum.Polygon;
            this.bFillColor    = kmlPolygon.FillColor;
            this.bOutLineColor = kmlPolygon.OutLineColor;
            this.width         = kmlPolygon.OutLineSize;

            flashTimer          = new Timer();
            flashTimer.Elapsed += new ElapsedEventHandler(flashTimer_Elapsed);
            flashTimer.Interval = 500;
        }
Example #12
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="_mapObject">地图对象</param>
        public FactoryMgis(object _mapObject)
        {
            moveLnglat = new MapLngLat();
            if (_mapObject != null)
            {
                this.axMapControl = _mapObject as AxHOSOFTMapControl;
            }
            else
            {
                InitMapControl();
            }

            axMapControl.eventInitFinish     += new _DHOSOFTMapControlEvents_eventInitFinishEventHandler(axMapControl_eventInitFinish);
            axMapControl.eventKeyDown        += new _DHOSOFTMapControlEvents_eventKeyDownEventHandler(axMapControl_eventKeyDown);
            axMapControl.eventKeyUp          += new _DHOSOFTMapControlEvents_eventKeyUpEventHandler(axMapControl_eventKeyUp);
            axMapControl.eventLButtonDbClick += new _DHOSOFTMapControlEvents_eventLButtonDbClickEventHandler(axMapControl_eventLButtonDbClick);
            axMapControl.eventLButtonDown    += new _DHOSOFTMapControlEvents_eventLButtonDownEventHandler(axMapControl_eventLButtonDown);
            axMapControl.eventLButtonUp      += new _DHOSOFTMapControlEvents_eventLButtonUpEventHandler(axMapControl_eventLButtonUp);
            axMapControl.eventMouseMove      += new _DHOSOFTMapControlEvents_eventMouseMoveEventHandler(axMapControl_eventMouseMove);
            axMapControl.eventRButtonDbClick += new _DHOSOFTMapControlEvents_eventRButtonDbClickEventHandler(axMapControl_eventRButtonDbClick);
            axMapControl.eventRButtonDown    += new _DHOSOFTMapControlEvents_eventRButtonDownEventHandler(axMapControl_eventRButtonDown);
            axMapControl.eventRButtonUp      += new _DHOSOFTMapControlEvents_eventRButtonUpEventHandler(axMapControl_eventRButtonUp);

            pointFac   = new PointFactory(axMapControl);
            pictureFac = new PictureFactory(axMapControl);
            circleFac  = new CircleFactory(axMapControl);
            lineFac    = new LineFactory(axMapControl);
            polygonFac = new PolygonFactory(axMapControl);
            textFac    = new TextFactory(axMapControl);
            lyMgr      = new LayerManager(axMapControl);
            lyMgr.RefreshMapDelegate += Refresh;

            refreshTimer          = new System.Timers.Timer();
            refreshTimer.Interval = 100;
            refreshTimer.Elapsed += refreshTimer_Elapsed;
        }
Example #13
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void Dispose()
 {
     mapControl  = null;
     BelongLayer = null;
 }
Example #14
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="_mapControl"></param>
 public DrawCircle(AxHOSOFTMapControl _mapControl)
 {
     this.mapControl = _mapControl;
 }
Example #15
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="_mapControl"></param>
 public DrawText(AxHOSOFTMapControl _mapControl)
 {
     this.mapControl = _mapControl;
 }
Example #16
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="_mapControl"></param>
 public CircleFactory(AxHOSOFTMapControl _mapControl)
 {
     this.mapControl = _mapControl;
 }
Example #17
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="_mapControl">地图控件</param>
 public LayerManager(AxHOSOFTMapControl _mapControl)
 {
     mapControl = _mapControl;
     layerDic   = new Dictionary <string, ulong>();
 }
Example #18
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="_mapControl"></param>
 public PointFactory(AxHOSOFTMapControl _mapControl)
 {
     this.mapControl = _mapControl;
 }
Example #19
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="_mapControl"></param>
 /// <param name="_mapLogic">图层管理</param>
 public SelectElement(AxHOSOFTMapControl _mapControl, IMapLogic _mapLogic)
 {
     this.mapLogic   = _mapLogic;
     this.mapControl = _mapControl;
     selectElements  = new List <IMFElement>();
 }
Example #20
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="_mapControl"></param>
 public LineFactory(AxHOSOFTMapControl _mapControl)
 {
     this.mapControl = _mapControl;
 }
Example #21
0
 /// <summary>
 /// 图片工厂
 /// </summary>
 /// <param name="_mapControl">地图控件</param>
 public PictureFactory(AxHOSOFTMapControl _mapControl)
 {
     this.mapControl = _mapControl;
 }
Example #22
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="_mapControl"></param>
 public DrawLine(AxHOSOFTMapControl _mapControl)
 {
     this.mapControl = _mapControl;
     listPoints      = new List <MapLngLat>();
 }
Example #23
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="_mapControl">地图对象</param>
 /// <param name="_element">要编辑的图元</param>
 public EditPoint(AxHOSOFTMapControl _mapControl, IMFElement _element)
 {
     this.element    = _element;
     this.moveObj    = Convert.ToUInt64(_element.ElementPtr);
     this.mapControl = _mapControl;
 }