/// <summary> /// 添加多边形图元 /// </summary> /// <param name="kml"></param> /// <param name="layerName"></param> /// <returns></returns> public Core.Interface.IMFElement CreateElement(Core.Model.Kml kml, string layerName) { //MapFrame.Core.Model.KmlPolygon kmlPolygon = kml.Placemark.Graph as MapFrame.Core.Model.KmlPolygon; //Polygon_Mgis polygonMgis = new Polygon_Mgis(mapControl); //if (kml.Placemark.Name == null || kmlPolygon.PositionList == null) return null; //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)kmlPolygon.PositionList[i].Lng; // vertex[2 * i + 1] = (float)kmlPolygon.PositionList[i].Lat; //} //Marshal.Copy(vertex, 0, ptrVert, vertex.Length); //mapControl.MgsDrawLineSymByJBID(kml.Placemark.Name, 11, (ulong)(ptrVert.ToInt64()), count); //Marshal.FreeHGlobal(ptrVert); //if (kmlPolygon.OutLineColor.ToArgb() != 0 || kmlPolygon.FillColor.ToArgb() != 0) //{ // mapControl.MgsUpdateSymFillColor(kml.Placemark.Name, kmlPolygon.FillColor.R, kmlPolygon.FillColor.G, kmlPolygon.FillColor.B, kmlPolygon.FillColor.A); // mapControl.MgsUpdateSymColor(kml.Placemark.Name, kmlPolygon.OutLineColor.R, kmlPolygon.OutLineColor.G, kmlPolygon.OutLineColor.B, kmlPolygon.OutLineColor.A); //} //polygonMgis.ElementType = Core.Model.ElementTypeEnum.Polygon; //polygonMgis.SetPolygonName(kml.Placemark.Name); //polygonMgis.SetListPoint(kmlPolygon.PositionList); Polygon_Mgis polygonMgis = new Polygon_Mgis(kml, mapControl); return(polygonMgis); }
/// <summary> /// 删除图元 /// </summary> /// <param name="element"></param> /// <param name="layerName"></param> /// <returns></returns> public bool RemoveElement(Core.Interface.IMFElement element, string layerName) { Polygon_Mgis polygonMgis = element as Polygon_Mgis; return(mapControl.MgsDelObject(polygonMgis.ElementPtr) == 0 ? true : false); }