样式属性用于说明地图图元的显示方式。样式API支持三种类型的属性:填充,单笔填充和符号。
填充属性控制区域的填充方式。单笔属性控制线条(或线几何对象或区域的边缘)的绘制方式。符号属性控制点几何对象的填充
<1>区域既可以采用实体颜色填充,也可以采用符号填充。
Rendition rend=new RenditionImpl();
Rend.setValue(Rendition.FI<?xml:namespace prefix = st1 ns = "Tencent" /><rtx w:st="on">LL</rtx>,Color.red);
Rend.setValue(Rendition.FI<rtx w:st="on">LL</rtx>_OPACITY,<?xml:namespace prefix = st2 ns = "urn:schemas-microsoft-com:office:smarttags" /><chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue=".5" unitname="F">0.5f</chmetcnv>);//设置不透明性【0--------------------1.0之间】
<2>单笔填充属性控制如何显示直线或区域的边。这些属性控制单笔填充图案,线宽等。
Rendition rend=new RenditionImpl();
Rend.setValue(Rendition.STROKE,Color.red);//绘制直线或区域边的时候的图案
Rend.setValue(Rendition.STROKE_WIDTH,<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3.2" unitname="F">3.2f</chmetcnv>;//绘制直线宽度
<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);【默认是<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="24" unitname="磅"><span lang="EN-US" style="mso-bidi-font-size: 10.5pt">24</span><span style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">磅</span></chmetcnv>】//字体大小
字体大小可以进行修改:
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<rtx w:st="on">CT</rtx>S, com.mapinfo.graphics.Rendition.FilterEffe<rtx w:st="on">ct</rtx>s.HALO); } private void createLabel(Layer layer,String expression) { if(layer == nu<rtx w:st="on">ll</rtx>) 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); } |