c#中操作Mapx5.02的方法

//增加图元,包括数据集、自定义字段、样式、标签

string sPath = Application.StartupPath + "//china//China.gst";

Mapx.GeoSet = sPath;

Mapx.TitleText = "";

Mapx.MapUnit = MapXLib.MapUnitConstants.miUnitKilometer; 

MapXLib.Fields fld = new MapXLib.Fields();

 fld.AddStringField("Label", 200, false); fld.AddStringField("DamCode", 20, false);

//图层信息

MapXLib.LayerInfo layerInfo = new MapXLib.LayerInfo();

layerInfo.Type = MapXLib.LayerInfoTypeConstants.miLayerInfoTypeTemp;

layerInfo.AddParameter("fileSpec", "My Layer");

layerInfo.AddParameter("Name", "DamLayer" + i);

layerInfo.AddParameter("Fields", fld);

 //创建图层  

MapXLib.Layer layer = Mapx.Layers.Add(layerInfo,i);

//创建图层数据集

MapXLib.Dataset layerDataSet = Mapx.DataSets.Add(MapXLib.DatasetTypeConstants.miDataSetLayer, layer, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

//对标签属性进行设置

layer.LabelProperties.Dataset = layerDataSet;

layer.LabelProperties.DataField = layerDataSet.Fields["Label"];

layer.LabelProperties.Position = MapXLib.PositionConstants.miPositionCL;

layer.LabelProperties.Offset = 2;  

layer.LabelProperties.Overlap = true;  

layer.LabelProperties.Style.TextFont.Size = 9;

layer.LabelProperties.Style.TextFont.Name = "楷书_GB2312";

layer.LabelProperties.Style.TextFont.Bold = true;

layer.LabelProperties.Style.TextFontColor = (uint)ColorTranslator.ToOle(Color.Red);

layer.ZoomLayer = true;

 layer.ZoomMax = iMax;

layer.ZoomMin = 0;

layer.AutoLabel = true;

//点

MapXLib.Point ptObj = new MapXLib.PointClass();

//点赋值

ptObj.Set(double.Parse(Dboper.sdr["EL"].ToString()), double.Parse(Dboper.sdr["NL"].ToString()));

//字段赋值

MapXLib.RowValues rv = layerDataSet.get_RowValues(0);

rv["Label"].Value = Dboper.sdr["RSNM"].ToString();

rv["DamCode"].Value = Dboper.sdr["RSID"].ToString();

 //样式

MapXLib.Style style = new MapXLib.Style();

style.SymbolFont.Name = "MapInfo Oil&Gas";

style.SymbolCharacter = 47;

style.SymbolFontColor = (uint)ColorTranslator.ToOle(Color.Red);

style.SymbolFont.Size = 12;

//图元 MapXLib.Feature f = Mapx.FeatureFactory.CreateSymbol(ptObj, style);

//图元加到图层上

layer.AddFeature(f, rv); 

 

 private void Mapx_SelectionChanged(object sender, EventArgs e)        

{            

         pXLib.Features FeaObjs;            

         pXLib.RowValues rv;

         String sDamCode;

         int iSerial = 0;

         lv_Dam.Items.Clear();

        

         try

        {

                 for (int i = 0; i < iCountPRJSC; i++)

                 {

                          FeaObjs = Mapx.Layers["DamLayer" + i].Selection.Clone();

                          if (FeaObjs != null)

                         {

                               if (FeaObjs.Count > 0)

                              {

                                       for (int j = 1; j <= FeaObjs.Count; j++)

                                      {

                                              rv = Mapx.Layers["DamLayer" + i].DataSets[1].get_RowValues(FeaObjs[j]);                                                   sDamCode = rv["DamCode"].Value.ToString();

                                              iSerial++;  

                                              AddDamInfo(sDamCode,iSerial);

                                      }

                              }

                       }

                  }

            }

             catch

             {

                        MessageBox.Show("选择图元时发生错误!","错误",MessageBoxButtons.OK,MessageBoxIcon.Exclamation );

            }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值