|
阅读:1427回复:0
MapXtreme 2005学习(1):创建临时图层
<br><font face="Verdana"> 首先说明一下创建临时图层的作用,当你需要在现有的地图上动态地添加一些点或线等图元时,就可以在临时</font></p>
<p><font face="Verdana">图层中进行。比如说在作动态轨迹跟踪时,通过读取数据库中的点坐标,不断地更新轨迹和图元的位置。代码如</font></p> <p><font face="Verdana">下:</font></p> <p><font face="Verdana"> /// <summary><br> /// 创建临时图层<br> /// Design by Glacier<br> /// 2008年8月6日<br> /// <param name="tempLayerTableName">表名</param><br> /// <param name="tempLayerName">图层名</param><br> /// </summary><br> public static void CreateTempLayer(string tempLayerTableName, string tempLayerName)<br> {<br> MapInfo.Mapping.Map myMap = MapInfo.Engine.Session.Current.MapFactory</font></p> <p><font face="Verdana">[MapControl1.MapAlias];</font></p> <p><font face="Verdana"> //指定表名建立表信息<br> MapInfo.Data.TableInfoMemTable tblInfoTemp = new MapInfo.Data.TableInfoMemTable</font></p> <p><font face="Verdana">(tempLayerTableName);</font></p> <p><font face="Verdana"> //确保当前目录下不存在同名表<br> MapInfo.Data.Table tblTemp = MapInfo.Engine.Session.Current.Catalog.GetTable</font></p> <p><font face="Verdana">(tempLayerTableName);<br> if (tblTemp != null)<br> {<br> MapInfo.Engine.Session.Current.Catalog.CloseTable(tempLayerTableName);<br> }</font></p> <p><font face="Verdana"> //向表信息中添加可绘图列<br> tblInfoTemp.Columns.Add(MapInfo.Data.ColumnFactory.CreateFeatureGeometryColumn</font></p> <p><font face="Verdana">(myMap.GetDisplayCoordSys()));<br> tblInfoTemp.Columns.Add(MapInfo.Data.ColumnFactory.CreateStyleColumn());</font></p> <p><font face="Verdana"> //向表信息中添加自定义列<br> tblInfoTemp.Columns.Add(MapInfo.Data.ColumnFactory.CreateIntColumn("index"));<br> tblInfoTemp.Columns.Add(MapInfo.Data.ColumnFactory.CreateStringColumn("name", 10));</font></p> <p><font face="Verdana"> //根据表信息创建临时表<br> tblTemp = MapInfo.Engine.Session.Current.Catalog.CreateTable(tblInfoTemp);</font></p> <p><font face="Verdana"> //指定表,图层名和图层别名创建临时图层<br> FeatureLayer tempLayer = new FeatureLayer(tblTemp, tempLayerName, tempLayerName);<br> myMap.Layers.Add(tempLayer);<br> }</font></p> |
|
|