MapXtreme 中改变feature颜色

1.C# code:
MapInfo.Data.Table table = MapInfo.Engine.Session.Current.Catalog.OpenTable(@"C:\Program Files\MapInfo\MapXtreme2004\Maps\North America\usa.tab";
this.mapControl1.Map.Load(new MapTableLoader(table));

MapInfo.Data.SearchInfo si = MapInfo.Data.SearchInfoFactory.SearchAll ();
MapInfo.Data.IResultSetFeatureCollection irfc = MapInfo.Engine.Session.Current.Catalog.Search(table.Alias,si);
MapInfo.Data.Feature ftr = irfc[0];

MapInfo.Styles.SimpleInterior sis = new MapInfo.Styles.SimpleInterior(9,System.Drawing.Color.Purple );
MapInfo.Styles.LineWidth lw = new MapInfo.Styles.LineWidth(3,MapInfo.Styles.LineWidthUnit.Point );
MapInfo.Styles.SimpleLineStyle sl = new MapInfo.Styles.SimpleLineStyle (lw,3);
MapInfo.Styles.AreaStyle ar = new MapInfo.Styles.AreaStyle (sl,sis);

MapInfo.Styles.CompositeStyle cs = new MapInfo.Styles.CompositeStyle(ar);
ftr.Style = cs;

MapInfo.Data.MIConnection connection = new MapInfo.Data.MIConnection();
connection.Open();

MapInfo.Data.MICommand command = connection.CreateCommand();
command.CommandText = "update " + ftr.Table.Alias + " set obj = @obj,MI_Style=@style where MI_Key = @MIKEY";
command.Parameters.Add("@obj", ftr.Geometry );
command.Parameters.Add("@MIKEY", ftr.Key);
command.Parameters.Add("@style",cs);
command.ExecuteNonQuery();

command.Dispose();
connection.Close();
connection.Dispose();

2.VB.NET code:
Dim table As MapInfo.Data.Table = MapInfo.Engine.Session.Current.Catalog.OpenTable("C:\Program Files\MapInfo\MapXtreme2004\Maps\North America\usa.tab"
Me.MapControl1.Map.Load(New MapTableLoader(table))

Dim si As MapInfo.Data.SearchInfo = MapInfo.Data.SearchInfoFactory.SearchAll()
Dim irfc As MapInfo.Data.IResultSetFeatureCollection = MapInfo.Engine.Session.Current.Catalog.Search(table.Alias, si)
Dim ftr As MapInfo.Data.Feature = CType(irfc, MapInfo.Data.IDynamicFeatureCollection)(1)

Dim sis As New MapInfo.Styles.SimpleInterior(9, System.Drawing.Color.Purple)
Dim lw As New MapInfo.Styles.LineWidth(3, MapInfo.Styles.LineWidthUnit.Point)
Dim sl As New MapInfo.Styles.SimpleLineStyle(lw, 3)
Dim ar As New MapInfo.Styles.AreaStyle(sl, sis)

Dim cs As New MapInfo.Styles.CompositeStyle(ar)
ftr.Style = cs

Dim connection As New MapInfo.Data.MIConnection
connection.Open()

Dim command As MapInfo.Data.MICommand = connection.CreateCommand()
command.CommandText = "update " + ftr.Table.Alias + " set obj = @obj,MI_Style=@style where MI_Key = @MIKEY"
command.Parameters.Add("@obj", ftr.Geometry)
command.Parameters.Add("@MIKEY", ftr.Key)
command.Parameters.Add("@style", cs)
command.ExecuteNonQuery()

command.Dispose()
connection.Close()
connection.Dispose()

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhangjie_xiaoke/archive/2008/11/07/3245075.aspx

原文地址:https://www.cnblogs.com/googlegis/p/2979026.html