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))控制大小。