添加线
2012-03-27 15:32 枫桥夜泊日 阅读(219) 评论(0) 编辑 收藏 举报 /// <param name="layerName">图层名</param>
/// <param name="startPoint">线段起点坐标</param>
/// <param name="endPoint">线段终点坐标</param>
/// <param name="shortCode">线的shortCode(线的型状也有多种,比如单箭头,双箭头等)</param>
/// <param name="color">线的颜色</param>
/// </summary>
private void AddLines(string layerName, DPoint startPoint, DPoint endPoint, int shortCode, Color color)
{
MapInfo.Mapping.Map myMap = mapMainControl.Map;
//获取图层和表
FeatureLayer workLayer = (MapInfo.Mapping.FeatureLayer)myMap.Layers[layerName];
MapInfo.Data.Table table = workLayer.Table;
//创建线
FeatureGeometry line = MultiCurve.CreateLine(workLayer.CoordSys, startPoint, endPoint);
var lineDistance= line.Distance(line, DistanceUnit.Kilometer, DistanceType.Spherical,false);
//以下两行是图形的样式
MapInfo.Styles.SimpleLineStyle slsLine = new MapInfo.Styles.SimpleLineStyle(new LineWidth(3, LineWidthUnit.Pixel), shortCode, color);
MapInfo.Styles.CompositeStyle lineStyle = new MapInfo.Styles.CompositeStyle(slsLine);
//接下来创建一行数据
MapInfo.Data.Feature ptLine = new MapInfo.Data.Feature(table.TableInfo.Columns);
ptLine.Geometry = line;
ptLine.Style = lineStyle;
ptLine["name"] = "距离:"+lineDistance.ToString();
ptLine["guid"] = "23";
//将线图元加入图层
table.InsertFeature(ptLine);
}