Example #1
0
        /// <summary>
        /// 设置线的宽度
        /// </summary>
        /// <param name="width"></param>
        /// <returns></returns>
        public bool SetWidth(float width)
        {
            this.width = width;
            int result = mapControl.MgsUpdateSymLineWidth(symbolName, width);

            Update();
            return(result == 1 ? true : false);
        }
Example #2
0
        /// <summary>
        /// 设置轮廓宽度
        /// </summary>
        /// <param name="size"></param>
        /// <returns></returns>
        public bool SetOutLineSize(float size)
        {
            int result = mapControl.MgsUpdateSymLineWidth(symbolName, size);

            this.width = size;
            Update();
            return(result == 1 ? true : false);
        }
Example #3
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 #4
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 #5
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="kml">kml对象</param>
        /// <param name="_mapControl">地图控件</param>
        public Line_Mgis(Kml kml, AxHOSOFTMapControl _mapControl)
        {
            this.mapControl = _mapControl;
            KmlLineString kmlLine = kml.Placemark.Graph as KmlLineString;

            if (kml.Placemark.Name == null || kmlLine.PositionList == null)
            {
                return;
            }
            this.symbolName = kml.Placemark.Name;
            this.listPoint  = kmlLine.PositionList;
            int count = kmlLine.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)kmlLine.PositionList[i].Lng;
                vertex[2 * i + 1] = (float)kmlLine.PositionList[i].Lat;
            }
            Marshal.Copy(vertex, 0, ptrVert, vertex.Length);
            mapControl.MgsDrawLineSymByJBID(symbolName, 10, (ulong)(ptrVert.ToInt64()), count);
            Marshal.FreeHGlobal(ptrVert);
            mapControl.MgsUpdateSymColor(symbolName, kmlLine.Color.R, kmlLine.Color.G, kmlLine.Color.B, kmlLine.Color.A);
            mapControl.MgsUpdateSymLineWidth(symbolName, kmlLine.Width);
            Update();//刷新
            this.ElementType = ElementTypeEnum.Line;

            this.width         = kmlLine.Width;
            this.bOutLineColor = kmlLine.Color;

            flashTimer          = new Timer();
            flashTimer.Elapsed += new ElapsedEventHandler(flashTimer_Elapsed);
            flashTimer.Interval = 500;
        }