样式属性

本文介绍了地图元素的样式配置方法,包括区域填充、线条绘制及点符号的设置,并详细展示了如何通过API控制这些属性,同时提供了创建地图标注的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值