样式属性

样式属性用于说明地图图元的显示方式。样式API支持三种类型的属性:填充,单笔填充和符号。

填充属性控制区域的填充方式。单笔属性控制线条(或线几何对象或区域的边缘)的绘制方式。符号属性控制点几何对象的填充

 

<1>区域既可以采用实体颜色填充,也可以采用符号填充。

Rendition rend=new RenditionImpl();

Rend.setValue(Rendition.FI LL ,Color.red);

 

Rend.setValue(Rendition.FI LL _OPACITY, 0.5f );//设置不透明性【0--------------------1.0之间】

 

 

<2>单笔填充属性控制如何显示直线或区域的边。这些属性控制单笔填充图案,线宽等。

 

Rendition rend=new RenditionImpl();

Rend.setValue(Rendition.STROKE,Color.red);//绘制直线或区域边的时候的图案

Rend.setValue(Rendition.STROKE_WIDTH, 3.2f ;//绘制直线宽度

 

<3>符号属性

com.mapinfo.graphics.Rendition rend = new RenditionImpl();

rend.setValue(com.mapinfo.graphics.Rendition.SYMBOL_MODE,

                            com.mapinfo.graphics.Rendition.SymbolMode.FONT);//符号模式

rend.setValue(com.mapinfo.graphics.Rendition.FONT_FAMILY,"MapInfo Transportation");//字体

              rend.setValue(com.mapinfo.graphics.Rendition.SYMBOL_STRING,String.valueOf((char)41));//显示的东西

rend.setValue(com.mapinfo.graphics.Rendition.FONT_SIZE,24);【默认是 24 //字体大小

 

字体大小可以进行修改:

Distince   fontsize=new Distince(12,LinearUnit.mile);

rend.setValue(com.mapinfo.graphics.Rendition.FONT_SIZE, fontsize);

 

标注

createLabel(siteLayer,

"SITE_NAME_CN+/"//n/"+OWN_REGION+/"-/"+OWN_AREA+/"-/"+OPERATION_AREA");

 

  /**

   * 生成图层标注

   * @param layer Layer

   * @param expression String【标注文本来自于与地图图元相关的属性】“CNAME

   */

  private static com.mapinfo.graphics.Rendition labRend = new RenditionImpl();

  static{

    labRend.setValue(com.mapinfo.graphics.Rendition.SYMBOL_MODE, com.mapinfo.graphics.Rendition.SymbolMode.FONT);

    labRend.setValue(com.mapinfo.graphics.Rendition.SYMBOL_FOREGROUND, Color.blue);

    labRend.setValue(com.mapinfo.graphics.Rendition.SYMBOL_BACKGROUND, Color.white);

    labRend.setValue(com.mapinfo.graphics.Rendition.FONT_FAMILY, "宋体");

    labRend.setValue(com.mapinfo.graphics.Rendition.FONT_SIZE, 16.0);

    labRend.setValue(com.mapinfo.graphics.Rendition.FILTER_EFFE CT S, com.mapinfo.graphics.Rendition.FilterEffe ct s.HALO);

  }

  private void createLabel(Layer layer,String expression) {

      if(layer == nu ll )

          return;

      LabelProperties labelProps = new LabelProperties();

      labelProps.setLabelExpression(expression);

      labelProps.setRendition(labRend);

      labelProps.setHorizontalAlignment(labelProps.HORIZ_ALIGN_LEFT);

      labelProps.setVerticalAlignment(labelProps.VERT_ALIGN_CENTER);

      labelProps.setMultiLineTextMode(LabelProperties.MULTILINE_TEXT_ON);//多行

      // Set the LabelProperties, and turn labeling on

      BaseLabelProperties baseProps = new BaseLabelProperties(labelProps);

      layer.setLabelProperties(baseProps);

      layer.setAutoLabel(true);

  }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值