wuyueming1983
论坛版主
论坛版主
  • 注册日期2004-11-24
  • 发帖数280
  • QQ
  • 铜币1142枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3320回复:0

如何向Applet中添加多线图元(MultiLine)

楼主#
更多 发布于:2006-11-27 10:19
在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);
喜欢0 评分0
游客

返回顶部