建立一个线缓冲区,并加载到地图中(还未实现)

2015-06-11 11:10:45  访问(1264) 赞(0) 踩(0)

MapInfo.Data.TableInfo ti = MapInfo.Data.TableInfoFactory.CreateTemp("LineTable");
MapInfo.Data.Table t = MapInfo.Engine.Session.Current.Catalog.CreateTable(ti);

MapInfo.Data.TableInfo ti2 = MapInfo.Data.TableInfoFactory.CreateTemp("BufferTable");
MapInfo.Data.Table t2 = MapInfo.Engine.Session.Current.Catalog.CreateTable(ti2);

MapInfo.Geometry.DPoint[] dPoints=new MapInfo.Geometry.DPoint[3] ;
dPoints[0]=new MapInfo.Geometry.DPoint(-100, 40);
dPoints[1]=new MapInfo.Geometry.DPoint(-98,34);
dPoints[2]=new MapInfo.Geometry.DPoint(-90,25);

MapInfo.Geometry.MultiCurve curve= new MapInfo.Geometry.MultiCurve (mapControl1.Map.GetDisplayCoordSys(),MapInfo.Geometry.CurveSegmentType.Linear ,dPoints);

MapInfo.Geometry.FeatureGeometry curveBuffer = curve.Buffer(100, MapInfo.Geometry.DistanceUnit.Mile, 99);

MapInfo.Styles.SimpleLineStyle bl = new MapInfo.Styles.SimpleLineStyle(new MapInfo.Styles.LineWidth(5, MapInfo.Styles.LineWidthUnit.Point));
MapInfo.Styles.CompositeStyle cs = new MapInfo.Styles.CompositeStyle(null,bl, null, null);

MapInfo.Data.Feature f = new MapInfo.Data.Feature(curve, cs);
t.InsertFeature(f);

MapInfo.Styles.LineWidth lw=new MapInfo.Styles.LineWidth(3,MapInfo.Styles.LineWidthUnit.Point );
MapInfo.Styles.SimpleLineStyle sl=new MapInfo.Styles.SimpleLineStyle (lw);
MapInfo.Styles.SimpleInterior sis=new MapInfo.Styles.SimpleInterior(9, System.Drawing.Color.Empty, System.Drawing.Color.Empty, true);
MapInfo.Styles.AreaStyle ar = new MapInfo.Styles.AreaStyle (sl,sis);
MapInfo.Styles.CompositeStyle cs2 = new MapInfo.Styles.CompositeStyle(ar,null,null,null);

MapInfo.Data.Feature f2 = new MapInfo.Data.Feature(curveBuffer, cs2);
t2.InsertFeature(f2);

FeatureLayer fl = new FeatureLayer(t);
this.mapControl1.Map.Layers.Add(fl);

FeatureLayer fl2 = new FeatureLayer(t2);
this.mapControl1.Map.Layers.Add(fl2);


标签:建立一个线缓冲区,并加载到地图中(还未实现) 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)