当前位置:软件学习 > 其它软件 >>

MapXtreme For Java问题求助(经纬度坐标转换为non-earth坐标)

本人在一个项目中,需要把经纬度坐标转换为nonEarth坐标,
在MapInfo Professional中,截图如下:
[img=http://tg7a57.mail.163.com/a/s?func=mbox:getMessageData&sid=IBHjfArFpggAXJoDzeFFKuQRNEzFhbtw&mid=59:1tbiOw8tiEl7OD96bQABsy&part=3][/img]
通过如上设置,可以把地图经纬度坐标转换为nonEarth坐标。

代码中实现时,如果是MapXtreme2004的代码方法如下:
public string TransCoordinateToNonEarth(double dblx,double dbly)
  {
   try
   {
    MapInfo.Geometry.CoordSysFactory csf = new MapInfo.Geometry.CoordSysFactory();
    MapInfo.Geometry.CoordSys Nonearth=csf.CreateFromMapBasicString("CoordSys NonEarth Units \"m\"  Bounds (-100000000, -100000000) (100000000, 100000000)");
    MapInfo.Geometry.CoordSys LonLat=csf.CreateFromMapBasicString("CoordSys Earth Projection 1, 0");
    MapInfo.Geometry.CoordinateTransform ctf = new MapInfo.Geometry.CoordinateTransform(LonLat,Nonearth);

    MapInfo.Geometry.DPoint dp = new MapInfo.Geometry.DPoint(dblx,dbly);
    MapInfo.Geometry.DPoint dp2 = ctf.CoordSys1ToCoordSys2(dp);

    return dp2.x.ToString()+","+dp2.y.ToString();
   }
   catch
   {
    return "";
   }
  }
  通过以上代码方法,可以把一个经纬度坐标如(121.5014,31.2372),转换为(13510332.8984127,3473416.52700544)这样的non-earth坐标。

请问:
1、以上转换能够通过纯数学计算方式来计算吗?计算公式如何的?
2、如果是通过MapXtreme的接口来转换,以上方法代码在MapXtreme For Java来写该怎么写?
   (可以写的朋友可以联系我qq:172835883,可以适当付费求购此方法)


--------------------编程问答-------------------- DoublePoint newPoint =ftr.getGeometry().getBounds().center();
DoublePoint screenPoint = myMap.transformNumericToScreen(newPoint);

MSN: liminghua_2001@hotmail.com --------------------编程问答-------------------- 感谢楼主,帮我解决了我的问题,谢谢 :)
补充:企业软件 ,  地理信息系统
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,