样式属性用于说明地图图元的显示方式。样式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); } |