在MapXtreme2004 地图中创建一个显示小车的图层

private void btnInitializeObjects_Click(object sender, System.EventArgs e)
{
Catalog Cat 
= MapInfo.Engine.Session.Current.Catalog;



//创建临时层
TableInfoMemTable tblInfoTemp = new TableInfoMemTable("Animation");
Table tblTemp 
= Cat.GetTable("Animation");
if (tblTemp != null//Table exists close it
{
Cat.CloseTable(
"Animation");
}




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);



FeatureLayer lyr 
= new FeatureLayer(tblTemp);
mapControl1.Map.Layers.Add(lyr);



//创建点-车
FeatureGeometry pt = new MapInfo.Geometry.Point(lyr.CoordSys, new DPoint(-7642)) as FeatureGeometry;
CompositeStyle cs 
= new CompositeStyle(new SimpleVectorPointStyle(37, System.Drawing.Color.Red, 10));
Feature ftr 
= new Feature(tblTemp.TableInfo.Columns);
ftr.Geometry 
= pt;
ftr.Style 
= cs;
ftr[
"Name"= "Kelly";
ftr[
"Dept"= "Sales";
ftr[
"Level"= 3;
tblTemp.InsertFeature(ftr);



FeatureGeometry pt2 
= new MapInfo.Geometry.Point(lyr.CoordSys, new DPoint(-11934)) as FeatureGeometry;
CompositeStyle cs2 
= new CompositeStyle(new SimpleVectorPointStyle(44, System.Drawing.Color.Purple, 10));
Feature ftr2 
= new Feature(tblTemp.TableInfo.Columns);
ftr2.Geometry 
= pt2;
ftr2.Style 
= cs2;
ftr2[
"Name"= "Greg";
ftr2[
"Dept"= "Marketing";
ftr2[
"Level"= 2;
tblTemp.InsertFeature(ftr2);
}




// 对于表中所有对象的移动
private void timer1_Tick(object sender, System.EventArgs e)
{
Catalog cat 
= MapInfo.Engine.Session.Current.Catalog;
Table tbl 
= cat.GetTable("Animation");
if (tbl != null
{
//更新点的位置
tbl.BeginAccess (MapInfo.Data.TableAccessMode.Write );
foreach (Feature fcar in tbl)
{
fcar.Geometry.GeometryEditor.OffsetByXY(
0.5,0,MapInfo.Geometry.DistanceUnit.Degree,MapInfo.Geometry.DistanceType.Spherical);
fcar.Geometry.EditingComplete();
fcar.Update();
}

tbl.EndAccess ();
}


posted on 2006-07-06 09:18  口俞克木公  阅读(672)  评论(0编辑  收藏  举报

导航