问题描述
代码如下:publicvoidcreat_map_operation(){Cat=MapInfo.Engine.Session.Current.Catalog;tblTemp=Cat.GetTable("Test");creat_temp_table();}//创建临时图层publicvoidcreat_temp_table(){if(tblTemp!=null)//Tableexistscloseit{//Cat.CloseTable("Test");}else{TableInfoMemTabletblInfoTemp=newTableInfoMemTable("Test");//创建GPS终端小车集图层tblInfoTemp.Columns.Add(ColumnFactory.CreateFeatureGeometryColumn(mapControl1.Map.GetDisplayCoordSys()));tblInfoTemp.Columns.Add(ColumnFactory.CreateStyleColumn());tblInfoTemp.Columns.Add(ColumnFactory.CreateStringColumn("Name",40));tblInfoTemp.Columns.Add(ColumnFactory.CreateStringColumn("Dept",15));tblInfoTemp.Columns.Add(ColumnFactory.CreateIntColumn("Level"));tblTemp=Cat.CreateTable(tblInfoTemp);FeatureLayerlyr=newFeatureLayer(tblTemp);mapControl1.Map.Layers.Add(lyr);creat_mark();}}//添加图元publicvoidinsert_feature(stringfileName,doublex,doubley,stringGPS_NUMBER){BitmapPointStylebStyle=newBitmapPointStyle(fileName);//fileName格式为@"gpscar2_p2.bmp"这个@代表C:ProgramFilesCommonFilesMapInfoMapXtreme6.7.1CustSymbbStyle.PointSize=Convert.ToInt16(24);bStyle.NativeSize=true;bStyle.Attributes=StyleAttributes.PointAttributes.BaseAll;bStyle.SetApplyAll();CompositeStylecompositeStyle=newCompositeStyle(bStyle);//mapControl1.Map.FeatureGeometrypt=newMapInfo.Geometry.Point(mapControl1.Map.GetDisplayCoordSys(),newDPoint(y,x));Featureftr=newFeature(tblTemp.TableInfo.Columns);ftr.Geometry=pt;//图元地理位置设置ftr.Style=compositeStyle;//图元为位图样式//ftr["Name"]=GPS_NUMBER;//ftr["Dept"]=GPS_NUMBER;//GPS终端号//ftr["Level"]=2;tblTemp.InsertFeature(ftr);//插入图元}//加图层标注publicvoidcreat_mark(){//MapInfo.Data.TabletblTemp=Cat.GetTable("Test");LabelSourcelabelSource=newLabelSource(tblTemp);//给所创建的临时表Test中的图元加标注//指定要标准字段所在的列labelSource.DefaultLabelProperties.Caption="Name";//所要标注的列名labelSource.DefaultLabelProperties.Layout.Offset=8;//标注偏移labelSource.DefaultLabelProperties.Layout.Alignment=MapInfo.Text.Alignment.TopRight;//标注对齐方式labelSource.DefaultLabelProperties.Style.Font.BackColor=System.Drawing.Color.White;//字体背景labelSource.DefaultLabelProperties.Style.Font.ForeColor=System.Drawing.Color.Red;//字体颜色labelSource.DefaultLabelProperties.Style.Font.TextEffect=MapInfo.Styles.TextEffect.Box;//边缘效果labelSource.DefaultLabelProperties.Style.Font.FontWeight=MapInfo.Styles.FontWeight.Bold;//粗体MapInfo.Styles.SimpleLineStylesimpleLineStyle=newMapInfo.Styles.SimpleLineStyle(0);//标注注释线labelSource.DefaultLabelProperties.Style.CalloutLine.ApplyStyle(simpleLineStyle);//取消标注注释线LabelLayerlabelLayer=newLabelLayer();labelLayer.Name="MyLayer";//设置标注图层的名称labelLayer.Sources.Append(labelSource);//往地图中加入该标注层mapControl1.Map.Layers.Add(labelLayer);}privateintCount;privatevoidAddBMP_Click(objectsender,EventArgse){creat_map_operation();doublex=mapControl1.Map.Center.x/2;doubley=mapControl1.Map.Center.y/2;stringfile=@"CAR1-32.BMP";insert_feature(file,e.X,e.Y,Convert.ToString(Count));}}}