绘制一条带箭头的折线
2012-03-30 14:52 枫桥夜泊日 阅读(424) 评论(0) 编辑 收藏 举报 /// <summary>
/// 添加一条折线
/// </summary>
/// <param name="orbitId">轨迹编号</param>
private void AddMyPolylineMapTool(string orbitId,string tempLayerName)
{
try
{
// 获取折线数据
attachmentbll = new BLL.ECCS_ORBIT_ATTACHMENT();//实例化bll层
attachment = new Model.ECCS_ORBIT_ATTACHMENT();
attachment = attachmentbll.GetModel(int.Parse(orbitId));
List<DPoint> dpointList = GetOrbitContent((attachmentbll.GetModel(int.Parse(orbitId))).OrbitContent);//获取折线的各个点坐标s
MapInfo.Mapping.Map myMap = mapMainControl.Map;
//获取图层和表
FeatureLayer workLayer = (MapInfo.Mapping.FeatureLayer)myMap.Layers[tempLayerName];
MapInfo.Data.Table table = workLayer.Table;
//dpointList转化为数组
DPoint[] dpt = new DPoint[dpointList.Count];
dpt = dpointList.ToArray();
//线的样式
MapInfo.Styles.SimpleLineStyle _lineStyle = new MapInfo.Styles.SimpleLineStyle(new LineWidth(3, LineWidthUnit.Pixel), 59, Color.Red);
MapInfo.Styles.CompositeStyle CompositeStyle = new MapInfo.Styles.CompositeStyle(_lineStyle);
CoordSys coordSys = mapMainControl.Map.GetDisplayCoordSys();
MultiCurve _lineFeatureCurve = new MultiCurve(coordSys,CurveSegmentType.Linear,dpt);
Feature f = new Feature(_lineFeatureCurve, _lineStyle);
table.InsertFeature(f);//添加到表
}
catch (Exception ex)
{
throw ex;
}