欢迎来到天天文库
浏览记录
ID:11406209
大小:127.50 KB
页数:11页
时间:2018-07-11
《mapobejcts组件应用设计(几何对象)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.Point对象2.Line及Polygon对象1.图形坐标数据2.Points集合与Parts集合3.几何对象的运算1.IsPointIn2.GetCrossings3.4.Intersect5.Difference6.Xor7.Buffer4.动态分段1.点事件(PointEvents)2.线事件(LineEvent)3.线的节点(Vertex)路程4.动态分段样例MapObjects2可以处理的几何元素有Point、Line、Polygon、Circle、Rectangle,每种元素定义成一个对象。这些对象统称为Shape,但没有定义Shape对象。除了
2、Point以外,其它四种都提供了交互式输入方法:TrackLine、TrackPolygon、TrackCircle、TrackRectangle。2.5.1Point对象Point是最简单的对象,语句DimptAsNewMapObjects2.Pointpt.X=30342pt.Y=43535建立了一个Point实例。2.5.2Line及Polygon对象1图形坐标数据在MapObjects2中,Line与Polygon图形都用Point的有序集合的集合定义,称为parts,Point的有序集合定义一条折线,称为part,part的集合命名为Parts。只有一
3、条折线的Line或Polygon实例的Parts集合中仅含有一个part。在Line中part的首尾两点不同,在Polygon中part的首尾两点用一个Point表示。下面这段程序取自附属盘中的样例GeoData中的MouseDown事件过程,程序先根据鼠标位置查出一个省区,然后将省区多边形的坐标串加入到List1控件中。DimrecsAsMapObjects2.Recordset'查询结果记录集DimcurXAsSingle,curYAsSingle'鼠标光标位置坐标Case“显示选择的多边形坐标数据”DimptAsMapObjects2.PointDimdi
4、stAsDoubleSetpt=Map1.ToMapPoint(curX,curY)‘根据屏幕坐标建立point实例dist=1000Setrecs=Map1.Layers(“china”).SearchByDistance(pt,dist,“”)‘按距离查询Ifrecs.EOFThenExitSub‘在列表框中显示省界坐标”DimshpAsPolygonDimptsAsMapObjects2.PointsDimiAsIntegerDimjAsIntegerSetshp=recs(“Shape”).ValueMe.List1.ClearMe.List1.AddI
5、tem“Parts.Count=“&shp.Parts.CountMe.List1.AddItemrecs.Fields(“Name”)+“省界坐标”Forj=0Toshp.Parts.Count-1Setpts=shp.Parts(j)Fori=0Topts.Count-1Me.List1.AddItem(Str(pts.Item(i).X)&““&Str(pts.Item(i).Y))NextiNextjMap1.Refresh‘触发Map1_AfterTrackingLayerDraw事件过程,绘制查询结果图EndSelect2Points集合与Parts
6、集合在Polygon及Line对象中,Points是点的集合,Parts是Points的集合。以下是集合上的常用操作:DimpolyAsMapObjects2.PolygonDimptsAsMapObjects2.PointsSetpoly=Map1.TrackPolygon‘鼠标跟踪绘制一个多边形Setpts=poly.Parts.Item(0)‘获得多边形中Points集合的引用pts.Removepts.Count–1‘删除多边形上的最后一点DimptAs NewMapObjects2.Pointpt.X=2300pt.Y=4500pts.Set2,pt‘
7、替换pts集合中的点pts.Item(2)pts.Reverse‘改变pts中点的排列方向在Polygon对象中,Points集合中点的排列方向赋予了特殊的含义。简单Polygon边界Points点按顺时针方向排列。含有岛区的复合Polygon的外围边界线点按顺时针方向排列,内部岛区边界线点按逆时针方向排列。Parts集合是不可创建对象,Polygon与Line的Parts属性也是只读的。在创建Polygon或Line对象的实例同时创建了Parts实例,且用Parts属性引用Parts实例。可按如下步骤建立一个完整的Polygon实例:1创建一个Polygon对
8、象实例。2创建Point
此文档下载收益归作者所有