MapXtreme Java提供的图标很少,做出的地图看起来不美观。MapXtreme Java中自定义符号
我目前想用这种方法:
将自定义的符号*.bmp保存到C:\Documents and Settings\Administrator\Application Data\MapInfo\MapInfo\Professional\700\CustSymb即可在pro中使用,如果要在xtreme for java 中使用该符号,要首先将该bmp格式的图标转换为gif格式,然后在xtreme for java安装根目录\MapInfo\tomcat-4.0.1\mxj450\webapps\mapxtreme45\resources中新建一文件夹,用文本编辑器写没有扩展名的文件,内容为:
<?xml version="1.0" encoding="UTF-8"?>
<NamedResource>
<ResourceDTD>
MI_XML_Protocol_MapCommonElements_4_0.dtd
</ResourceDTD>
<ResourceXML>
<Style>
<rendition>
<style symbol-mode="image">
<image href="file:///D:\\Program Files\\MapInfo\\book.gif"/>
</style>
</rendition>
</Style>
</ResourceXML>
</NamedResource>
其中的D:\\Program Files\\MapInfo\\book.gif为图标的保存路径。
然后在地图定义管理器中将选择图层的显示样式定位到给文件即可。
也可以在程序中控制,代码如下:
com.mapinfo.dp.Rendition rend = new com.mapinfo.dp.Rendition();
rend.setvalue(Rendition.SYMBOL_MODE, Rendition.SymbolMode.IMAGE);
String gifUrl = "file:///D:\\Program Files\\MapInfo\\book.gif";
rend.setvalue(Rendition.SYMBOL_URL, gifUrl);
rend.setvalue(Rendition.SYMBOL_SIZE, new com.mapinfo.unit.Size(15));
selTheme.setRendition(rend);
annLayer.getThemeList().add(selTheme);
我目前尝试的这两种方法有一个差别,在地图定义管理器中不能设置自定义符号的大小,无论我设置的大小是什么,都为原始大小,但是如果在程序中可以用rend.setvalue(Rendition.SYMBOL_SIZE, new com.mapinfo.unit.Size(15))控制大小。