本人在一个项目中,需要把经纬度坐标转换为nonEarth坐标,
在MapInfoProfessional中,截图如下:
[img=http://tg7a57.mail.163.com/a/s?func=mbox:getMessageData&sid=IBHjfArFpggAXJoDzeFFKuQRNEzFhbtw&mid=59:1tbiOw8tiEl7OD96bQABsy&part=3][/img]
通过如上设置,可以把地图经纬度坐标转换为nonEarth坐标。mapxtreme
代码中实现时,如果是MapXtreme2004的代码方法如下:
publicstringTransCoordinateToNonEarth(doubledblx,doubledbly)
{
try
{

MapInfo.Geometry.CoordSysFactorycsf=newMapInfo.Geometry.CoordSysFactory();
MapInfo.Geometry.CoordSysNonearth=csf.CreateFromMapBasicString("CoordSysNonEarthUnits\"m\"Bounds(-100000000,-100000000)(100000000,100000000)");
MapInfo.Geometry.CoordSysLonLat=csf.CreateFromMapBasicString("CoordSysEarthProjection1,0");
MapInfo.Geometry.CoordinateTransformctf=newMapInfo.Geometry.CoordinateTransform(LonLat,Nonearth);
MapInfo.Geometry.DPointdp=newMapInfo.Geometry.DPoint(dblx,dbly);
MapInfo.Geometry.DPointdp2=ctf.CoordSys1ToCoordSys2(dp);
returndp2.x.ToString()+","+dp2.y.ToString();
}
catch

{
return"";
}
}
通过以上代码方法,可以把一个经纬度坐标如(121.5014,31.2372),转换为(13510332.8984127,3473416.52700544)这样的non-earth坐标。mapxtreme
请问:
1、以上转换能够通过纯数学计算方式来计算吗?计算公式如何的?
2、如果是通过MapXtreme的接口来转换,以上方法代码在MapXtremeForJava来写该怎么写?
(可以写的朋友可以联系我qq:172835883,可以适当付费求购此方法)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-28609-1.html
他能告诉你的唯一真理就是