在添加點之前先要在地圖上創建一個臨時圖層,創建臨時圖層請參考《MapXtreme2005學習(1):創建臨時圖層》。本示例中通過指定圖層名,表名,點座標在圖層中添加一個點。代碼如下:
複製內容到剪貼板
代碼:
/// <summary>
/// 向圖層中添加點
/// 2008年8月6日
/// <param name="tempLayerTableName">表名</param>
/// <param name="tempLayerName">圖層名</param>
/// <param name="dPoint">點座標</param>
/// </summary>
public static void AddPointToLayer(string tempLayerTableName, string tempLayerName, DPoint dPoint)
{
MapInfo.Mapping.Map myMap = MapInfo.Engine.Session.Current.MapFactory[MapControl1.MapAlias];
//獲取圖層和表
FeatureLayer workLayer = (MapInfo.Mapping.FeatureLayer)myMap.Layers[tempLayerName];
MapInfo.Data.Table tblTemp = MapInfo.Engine.Session.Current.Catalog.GetTable(tempLayerTableName);
//創建點圖元及其樣式
FeatureGeometry pgPoint = new MapInfo.Geometry.Point(workLayer.CoordSys, dPoint);
MapInfo.Styles.SimpleVectorPointStyle spsPoint = new
MapInfo.Styles.SimpleVectorPointStyle(37, System.Drawing.Color.Red, 20);
MapInfo.Styles.CompositeStyle csPoint = new MapInfo.Styles.CompositeStyle(spsPoint);
MapInfo.Data.Feature ptPoint = new MapInfo.Data.Feature(tblTemp.TableInfo.Columns);
ptPoint.Geometry = pgPoint;
ptPoint.Style = csPoint;
//將點圖元加入圖層
workLayer.Table.InsertFeature(ptPoint);
}
複製內容到剪貼板
代碼:
/// <summary>
/// 向圖層中添加點
/// 2008年8月6日
/// <param name="tempLayerTableName">表名</param>
/// <param name="tempLayerName">圖層名</param>
/// <param name="dPoint">點座標</param>
/// </summary>
public static void AddPointToLayer(string tempLayerTableName, string tempLayerName, DPoint dPoint)
{
MapInfo.Mapping.Map myMap = MapInfo.Engine.Session.Current.MapFactory[MapControl1.MapAlias];
//獲取圖層和表
FeatureLayer workLayer = (MapInfo.Mapping.FeatureLayer)myMap.Layers[tempLayerName];
MapInfo.Data.Table tblTemp = MapInfo.Engine.Session.Current.Catalog.GetTable(tempLayerTableName);
//創建點圖元及其樣式
FeatureGeometry pgPoint = new MapInfo.Geometry.Point(workLayer.CoordSys, dPoint);
MapInfo.Styles.SimpleVectorPointStyle spsPoint = new
MapInfo.Styles.SimpleVectorPointStyle(37, System.Drawing.Color.Red, 20);
MapInfo.Styles.CompositeStyle csPoint = new MapInfo.Styles.CompositeStyle(spsPoint);
MapInfo.Data.Feature ptPoint = new MapInfo.Data.Feature(tblTemp.TableInfo.Columns);
ptPoint.Geometry = pgPoint;
ptPoint.Style = csPoint;
//將點圖元加入圖層
workLayer.Table.InsertFeature(ptPoint);
}