阅读:3533回复:5
[求助]MapObject java中显示标注
<P> 请问在MapObject java中如何读取dbf文件,并将标注显示在Map上.</P>
<P>谢谢!</P> |
|
1楼#
发布于:2007-04-21 20:53
<P><img src="images/post/smile/dvbbs/em01.gif" /></P>
|
|
2楼#
发布于:2007-04-22 15:19
<P>我自己已经解决了</P>
<P> 下面是实现的代码:</P> <P> for(int i=0;i<LayerCount;i++) //LayerCount为你在Map中加入的Layer的数目</P> <P> BaseValueMapLabelRenderer vmlr = new<BR> BaseValueMapLabelRenderer();</P> <P> //setup renderer fields<BR> com.esri.mo2.map.dpy.FeatureLayer flyr = getFeatureLayer(i);<BR> com.esri.mo2.data.feat.Fields fields = flyr.<BR> getFeatureClass().getFields();<BR> int fnum1 = fields.findField("NAME");</P> <P> com.esri.mo2.data.feat.Field f1 = fields.getField(fnum1);</P> <P> com.esri.mo2.data.feat.BaseFields labelFields = new com.<BR> esri.mo2.data.feat.BaseFields();<BR> labelFields.addField(f1);</P> <P> //setup label text symbol<BR> SimpleTextSymbol textSym = new SimpleTextSymbol();<BR> textSym.setColor(java.awt.Color.blue);<BR> textSym.setFont(new java.awt.Font("宋体", 0, 12));</P> <P> vmlr.setField(f1);<BR> vmlr.setLayer(flyr);<BR> vmlr.setLabelFields(labelFields);<BR> vmlr.setDefaultSymbol(textSym);</P> <P> flyr.setLabelRenderer(vmlr);</P> <P> map1.redraw();<BR> overviewMap1.redraw();</P> <P> }</P> <P>private com.esri.mo2.map.dpy.FeatureLayer getFeatureLayer(int i) {<BR> System.out.println("layer count="+map1.getLayerCount());<BR> com.esri.mo2.map.dpy.FeatureLayer flyr =<BR> (com.esri.mo2.map.dpy.FeatureLayer)map1.getLayer(i);</P> <P> return flyr;</P> <P> }</P> <P>//下面是清除图层中标记的代码</P> <P> for(int i=0;i<LayerCount;i++){</P> <P> com.esri.mo2.map.dpy.FeatureLayer f = getFeatureLayer(i);<BR> f.setLabelRenderer(null);</P> <P> Map.redraw();</P> <P>}</P> <P> 为什么我问的在图层中画直线和多边行并量算直线距离和多边行面积的问题没人解答一下了</P> <P>唉!</P> <P>真的很无助</P> |
|
3楼#
发布于:2007-04-22 15:20
我的QQ是:635040014请人指教
|
|
4楼#
发布于:2007-04-23 19:17
<img src="images/post/smile/dvbbs/em01.gif" />我也是
|
|
5楼#
发布于:2010-08-06 17:43
同楼主的感受,我现在也被要求用MO做个小地图,实现基本功能,可大学里学的是JAVA,现在发现资料好少……
|
|