Example #1
0
        /// <summary>
        /// 设置轮廓色
        /// </summary>
        /// <param name="outlineColor"></param>
        /// <returns></returns>
        public bool SetOutLineColor(int outlineColor)
        {
            Color color  = Color.FromArgb(outlineColor);
            int   result = mapControl.MgsUpdateSymColor(symbolName, color.R, color.G, color.B, color.A);

            Update();
            bOutLineColor = color;
            return(result == 1 ? true : false);
        }
Example #2
0
        /// <summary>
        /// 绘制更新的图元
        /// </summary>
        /// <param name="listPoint"></param>
        private void DrawNewCircle(List <MapLngLat> listPoint)
        {
            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);
            mapControl.MgsDelObject(symbolName);//先删除掉原始线图元
            //再添加一个新的线图元
            mapControl.MgsDrawLineSymByJBID(symbolName, 16, (ulong)(ptrVert.ToInt64()), 2);
            mapControl.MgsUpdateSymColor(symbolName, bOutLineColor.R, bOutLineColor.G, bOutLineColor.B, bOutLineColor.A);
            mapControl.MgsUpdateSymFillColor(symbolName, bFillColor.R, bFillColor.G, bFillColor.B, bFillColor.A);
            mapControl.MgsUpdateSymLineWidth(symbolName, this.width);
            Update();//刷新
            Marshal.FreeHGlobal(ptrVert);
        }
Example #3
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 #4
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 #5
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 #6
0
 /// <summary>
 /// 设置线的颜色
 /// </summary>
 /// <param name="color"></param>
 public void SetColor(System.Drawing.Color color)
 {
     mapControl.MgsUpdateSymColor(symbolName, color.R, color.G, color.B, color.A);
     Update();
     bOutLineColor = color;
 }