阅读:3320回复:0
如何向Applet中添加多线图元(MultiLine)
在GeoBeans的applet开发过程中,动态添加图元的方法通常是使用CMExpress.addShape(String,
String) 的函数接口。就添加线而言,该接口只提供了添加单条折线(Line,参见注释1)的功能,但在实际应用中,有时候需要把多条没有首尾相连的线作为一个图元处理,­这就需要能动态添加多线(MultiLine,参见注释2)。 方法: 1、添加数据 添加MultiLine的方法是调用图层对象GShape GMapLayer.addShapeFromWKT( String wkt )的方法。其中参数wkt(参见注释3)是表示MultiLine的字符串。返回一个GShape对象 2、指定数据的绘制样式 添加数据后,就能绘制出MulitLine图元,但只是单一的黑线,很多时候,还需要指定图元的显示样式,比如线宽,颜色,是否固定线宽等参数。 完成该功能,是通过获取和修改返回GShape对象中的GInfomation对象来实现的。GInfomation对象中就包含了图元的显示样式参数。 例子: function newMultiLine() { var layerName = "chinar"; var pMap = document.getElementById("GeoBeansMap:); var layer = pMap.getMapLayer( layerName ); var pShape = layer.addShapeFromWKT("MULTILINESTRING((300 250, 500 250), (300 150, 500 150))"); if( pShape!=null ) { var pInfo=pShape.getInfomation(); pInfo.setColorFromString("#0000ff"); //设置颜色 pInfo.setSize(3,0); //设置线宽 pInfo.setStyle(0x09); //固定大小,固定线宽 } pMap.setOperation(5); } 注释: 1.单线(Line):该线由一组点坐标组成,各个点按顺序首尾相连,组成一条折线,整个线作为一个图元处理。 2.多线(MultiLine):该线由一组点坐标组成,但中间有部份点没有首尾相连,使得整个图元由多条线组成。比如系统中用两条平行的线表示一个电线杆,在­表现上是两条线,但在系统中是作为一个图元处理的,只有一个Id号,要删除一起删除 ,要闪烁一起闪烁。 3.WKT格式:WKT格式是OGC规定用于描述各种点,线,面图元的字符串格式规范。结构简单易懂,比如: 点:POINT(2572292.2 5631150.7) 线:LINESTRING (2566006.4 5633207.9, 2566028.6 5633215.1, 2566062.3 5633227.1) 多线:MULTILINESTRING((2566006.4 5633207.9, 2566028.6 5633215.1), (2566062.3 5633227.1, 2566083 5633234.8)) 面:POLYGON (2568262.1 5635344.1, 2568298.5 5635387.6, 2568261.04 5635276.15, 2568262.1 5635344.1); |
|