首 页文章中心下载中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:开源盛世-源代码下载网 -> 文章中心 -> GIS 专区 -> 文章内容 退出登录 用户管理
栏目导航
· VC++专区 · V B 专区
· GIS 专区 · PDA 专区
· 其他编程 · 网站开发类
· 数据库类 · 软件应用
· 网络安全 · 论文专区
· 综合资讯
热门文章
· Tab Control控件使用...
· 学生档案管理系统
· [图文] 排列组合公式
· UTF-8与GB2312之间的...
· DirectShow下载安装...
· Virtual PC 在PAE模...
· Windows2000终端服务...
· MapInfo上的GIS系统...
· Mapbasic参考手册索...
· MapX应用开发中文讲...
相关文章
· ArcGIS在菜单中调用...
· [图文] Server Java开发--B...
· ArcGIS Server Java...
· ArcGIS Server Java...
· ArcGIS Server Java...
· ArcGIS Server Java...
· ArcGIS Server Java...
· [图文] ArcGIS Server Java...
· ArcGIS Server Java...
· ArcGIS Server JAVA...
ArcGIS Server Java讲座---使用图片和TrueType字体进行标注
作者:不详  来源:vscodes.com整理  发布时间:2007-6-29 15:29:58  发布人:Polaris

减小字体 增大字体

直奔主题吧,接上个主题的讲座的内容,讲讲如何用图片进行标注。在前面一个讲座我们已经说明,如何对选中的物体进行高亮显示。而且这一部分工作是在ADF这一端完成的。那么有的时候,我们进行高亮显示的时候,不仅仅希望只是设置颜色,我们希望能够用图片或者truetype字体进行标注。比如在犯罪地点放一个坏人之类的功能。

我们来看看实现原理,关键是两个类,WebTrueTypeMarkerSymbolWebPictureMarkerSymbol,没啥好说的,直接用代码来说明吧:

先来看看普通的点标注:


WebPointpt=(WebPoint)arg0.getWebGeometry().toMapGeometry(arg0.getWebContext().getWebMap());

WebSimpleMarkerSymbol markers =null;

markers = new WebSimpleMarkerSymbol();

markers.setAntialiasing(true);

markers.setColor("255,0,0");

markers.setWidth(8);

markers.setOutlineColor("255,0,0");

markers.setMarkerType(WebSimpleMarkerSymbol.CIRCLE);  

markers.setPicture(bytInput);

GraphicElement ge=new GraphicElement();

ge.setGeometry(pt);

ge.setSymbol(markers);

WebGraphicsgraphics=arg0.getWebContext().getWebGraphics();

graphics.addGraphics(ge);

arg0.getWebContext().refresh();



注意webgraphicsymbolsetPicture方法的参数不是图片目录,而是图片的二进制数组,所以需要用文件IO把图片读取进来。当然,如果用户访问量很大,线程就不安全了,大家可以在application启动时进行读取,放在context的某个attribute里面。我原来认为是通过设置路径方式实现,这样又可能可以搞定gif图形的闪烁,但是现在实验结果是不行。设置图片标注的代码如下:



WebPointpt=(WebPoint)arg0.getWebGeometry().toMapGeometry(arg0.getWebContext().getWebMap());

//图片在servelet容器里面目录                              

String picPath=FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath()+"\\images\\angle.gif";

File myFile = new File(picPath);        

FileInputStream myStream= newFileInputStream(myFile);   

BufferedInputStream buf = newBufferedInputStream(myStream);

byte[] bytInput = newbyte[(int)myFile.length()];

buf.read(bytInput, 0, (int) myFile.length());

buf.close();

myStream.close();

WebPictureMarkerSymbol markers=newWebPictureMarkerSymbol();

markers.setPicture(bytInput);

GraphicElement ge=new GraphicElement();

ge.setGeometry(pt);

ge.setSymbol(markers);

WebGraphics graphics=arg0.getWebContext().getWebGraphics();

graphics.addGraphics(ge);

arg0.getWebContext().refresh();




jsf文件里面添加如下代码,调用图片标注工具,进行测试:


<a:tool id="pointTest"defaultImage="images/point.gif"hoverImage="images/pointU.gif"

selectedImage="images/pointD.gif"clientAction="EsriMapPoint" serverAction="com.cj.ucdemo.GifTestTool"clientPostBack="true"/>



图片标注的结果如下:
Snap3.jpg (70.05 KB)
2007-1-31 15:49


用图片做markSymbol

我们也可以使用TrueType字体里面的矢量字体对图形进行符号化显示,这也是我们经常使用的方法,具体代码如下:



webMap=arg0.getWebContext().getWebMap(); WebPointpt=(WebPoint)arg0.getWebGeometry().toMapGeometry(webMap); WebTrueTypeMarkerSymbol trueMarkerSymbol=new WebTrueTypeMarkerSymbol(); //注意使用系统里面已经安装的字体 trueMarkerSymbol.setFontName("ESRITransportation & Civic");//设置索引 trueMarkerSymbol.setCharacterIndex(8); trueMarkerSymbol.setFontColor("255,0,0"); trueMarkerSymbol.setFontSize(20); trueMarkerSymbol.setFontStyle(WebTrueTypeMarkerSymbol.BOLD);GraphicElement ge=new GraphicElement(); ge.setGeometry(pt); ge.setSymbol(trueMarkerSymbol);WebGraphicsgraphics=arg0.getWebContext().getWebGraphics(); graphics.addGraphics(ge);arg0.getWebContext().refresh();



把上面的代码放在一个点击工具里面,在jsf文件中用如下代码进行调试:




  <a:toolid="trueMarkerTest" defaultImage="images/point.gif"hoverImage="images/pointU.gif"                               selectedImage="images/pointD.gif"clientAction="EsriMapPoint"                               serverAction="com.cj.ucdemo.TrueTypeMarkerTest"clientPostBack="true"/>


TrueType字体标注的结果如下图所示:

   

Snap2.jpg (146.63 KB)
2007-1-31 15:49

End of《ArcGIS Server Java讲座---使用图片和TrueType字体进行标注》

[] [返回上一页] [打 印] [收 藏]
 
∷相关“ArcGIS Server Java讲座---使用图片和TrueType字体进行标注”文章评论∷
(评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 网站目录 鄂ICP备06007162
开源盛世 版权所有Copyright © 2003-2005 VSCodes.Com. All Rights Reserved.