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 --------------------编程问答-------------------- 感谢楼主,帮我解决了我的问题,谢谢 :)
补充:企业软件 , 地理信息系统