vonpower
外卖仔
外卖仔
  • 注册日期2005-07-19
  • 发帖数31
  • QQ
  • 铜币224枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3003回复:1

ArcEngine坐标转换的问题(page to map)

楼主#
更多 发布于:2005-08-05 21:25
<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>
喜欢0 评分0
我的blog: http://my.opera.com/VonPower/ 欢迎对: GIS、智能交通、AE——AO开发、JAVA技术、。NET技术、设计模式、软件工程等感兴趣的同学 加入QQ群:10537919 一起努力吧~
vonpower
外卖仔
外卖仔
  • 注册日期2005-07-19
  • 发帖数31
  • QQ
  • 铜币224枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-12-05 20:34
<P>四个月之后,我又回来了~自己回答自己的问题了。</P>
<P>AE的mapControl\pagelayout\tocControl\sence\global这些控件是基于AWT/SWING开发的,我当时的开发环境是用了SWT,在获取屏幕坐标是确实有问题!</P>
<P>下个项目我还是用C#开发好了~VS2005也出了,爽啊~</P>
我的blog: http://my.opera.com/VonPower/ 欢迎对: GIS、智能交通、AE——AO开发、JAVA技术、。NET技术、设计模式、软件工程等感兴趣的同学 加入QQ群:10537919 一起努力吧~
举报 回复(0) 喜欢(0)     评分
游客

返回顶部