当前位置:编程学习 > 网站相关 >>

连虚线 mapxtreme

 已知两点 怎么连虚线啊 mapxtreme?? --------------------编程问答-------------------- c#  --------------------编程问答-------------------- 在maptreme中,已知两的坐标,其实就是绘制一条线段,设置线段的样式,就可以了.
MapInfo.Styles.SimpleLineStyle style = new SimpleLineStyle(PatternStyle.Cross); --------------------编程问答-------------------- up --------------------编程问答-------------------- 相关定义:
[code==C#]public FeatureLayer TmFlyr;
public MapInfo.Data.Table TmTbl;[/code]

初始化:
         
private void Form1_Load(object sender, EventArgs e)
        {
            MapInfo.Data.Catalog Cat = MapInfo.Engine.Session.Current.Catalog;
            //TmTbl = Cat.GetTable("mexico");

            TableInfoMemTable TmInfo = new TableInfoMemTable("Tm");

            TmTbl = Cat.GetTable("Tm");

            if (TmTbl != null) { Cat.CloseTable("Tm"); } 
            TmInfo.Columns.Add(ColumnFactory.CreateFeatureGeometryColumn(MCtrl.Map.GetDisplayCoordSys()));
            TmInfo.Columns.Add(ColumnFactory.CreateStyleColumn());
            TmInfo.Columns.Add(ColumnFactory.CreateStringColumn("Name", 12));
            TmInfo.Columns.Add(ColumnFactory.CreateStringColumn("Loca", 50));
            TmInfo.Columns.Add(ColumnFactory.CreateIntColumn("Indx"));

            TmTbl = Cat.CreateTable(TmInfo);  //创建临时表

            TmFlyr = new FeatureLayer(TmTbl); //创建临时图层
            MCtrl.Map.Layers.Add(TmFlyr);     //将临时图层加入当前的MapXTreme图层当中
        }

下面通过点击一个按钮在地图上绘制一条红色虚线:使用的为墨西哥地图:
         
private void button1_Click(object sender, EventArgs e)
        {
            MapInfo.Geometry.DPoint[]  dPt = new DPoint[3];  //创建一个点数组

            dPt[0].x = -101.236401711274;
            dPt[0].y =  22.6474803334433;

            dPt[1].x = -102.116736770488;
            dPt[1].y =  32.2141510582492;

            dPt[2].x = -103.916736770488;
            dPt[2].y = 28.2141510582492;

            MultiCurve _lineFeatureCurve = new MultiCurve( TmFlyr.CoordSys );
            _lineFeatureCurve = MultiCurve.CreateLine( TmFlyr.CoordSys, dPt[0], dPt[2]);  //取两点画线

            SimpleLineStyle _lineStyle = new SimpleLineStyle();        //创建线形
            _lineStyle.Width = new LineWidth(1.0, LineWidthUnit.Point); //设定线宽为1.0 线宽单位为Point,最大值不限(可以设置为Pixel,最大为7.0)
            _lineStyle.Pattern = 5;                             //线样式5 5为虚线  可以设定其他值改为其他类型 有很多种 127种左右 第77号类似铁轨
            _lineStyle.Color = Color.Red;                       //颜色为红色 

            Feature Lftr = new Feature( _lineFeatureCurve, _lineStyle); //创建图元
 
            TmTbl.InsertFeature( Lftr);  //将图元加入临时表中 
        }

楼主去试一试看可以不 我这里的效果是这样的:

--------------------编程问答-------------------- 对了 我的环境是 Vs2008下建立的MapXtremeWindowsApplication工程 --------------------编程问答-------------------- 设置样式simplelinestyle
补充:企业软件 ,  地理信息系统
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,