物探论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 478|回复: 0

mapxtreme 2004 改变feature颜色

[复制链接]
发表于 2013-3-13 20:50:05 | 显示全部楼层 |阅读模式
mapxtreme 2004 改变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()

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|物探论坛 ( 鄂ICP备12002012号 微信号:iwutan )

GMT+8, 2024-5-13 05:22 , Processed in 0.322634 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表