阅读:3162回复:1
ArcEngine坐标转换的问题(page to map)
<P>最近用java写程序需要把用在pagelayout上画的grid定位一些要素,<BR>应此需要把pagelayout上的坐标转到map上,可是死活不成功,请大家帮忙想想办法~<BR>先谢谢啦~</P>
<P> <STRONG>IDisplayTransformation pageTransformation = getPageLayout().getActiveView().getScreenDisplay().getDisplayTransformation();<BR> IDisplayTransformation mapTransformation =getMapCtrl().getActiveView().getScreenDisplay().getDisplayTransformation();</STRONG></P> <P><STRONG> // IGeometry tempGeo=null;<BR> IEnvelope tempEnv = new Envelope();<BR> <BR> <BR> tagRECT tempRECT = new tagRECT();<BR> </STRONG></P> <P><STRONG> pageTransformation.transformRect(<BR> tempEnv,<BR> <FONT color=#b34d4d>tempRECT</FONT>,<BR> <BR> esriDisplayTransformationEnum.esriTransformToDevice+<BR> esriDisplayTransformationEnum.esriTransformPosition<BR> );<BR> <BR> mapTransformation<BR> .transformRect(<BR> tempEnv,<BR> <EM><FONT color=#dd4822>tempRECT</FONT></EM>,<BR> esriDisplayTransformationEnum.esriTransformToMap+<BR> esriDisplayTransformationEnum.esriTransformPosition<BR> );<BR></STRONG> <BR>转换失败的表现:tempEnv最后被转成map坐标上的一个 点 (应该是一个矩形啊)<BR> tempRECT始终没有用(top=0,bottom=0,left=0,right=0).<BR> 我的java也不熟,感觉是tempRECT没有被返回,在C++中可以传地址(;tempRECT),java<BR> 中因为tempRECT是class应该直觉就是传引用啊?想不通,会不会像c#一样有ref和out之类的keyword?<BR> 请gis高手和各位java达人帮忙想想~再次感谢~!</P> |
|
|
1楼#
发布于:2005-12-05 20:34
<P>四个月之后,我又回来了~自己回答自己的问题了。</P>
<P>AE的mapControl\pagelayout\tocControl\sence\global这些控件是基于AWT/SWING开发的,我当时的开发环境是用了SWT,在获取屏幕坐标是确实有问题!</P> <P>下个项目我还是用C#开发好了~VS2005也出了,爽啊~</P> |
|
|