13426253282
路人甲
路人甲
  • 注册日期2006-07-12
  • 发帖数2
  • QQ
  • 铜币117枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1561回复:4

坐标转换的问题,请指教

楼主#
更多 发布于:2006-08-10 10:56
   最近用AE开发GIS项目,要把WGS84下的坐标转换成北京54的,用IPOINT接口下的PROJECT属性下的例子可以实现转换,但是转换出来的应该是屏幕坐标(数值很大),怎么样再转换成经纬读坐标呢?或者说我用的方法本来就是错误的?谢谢各位请指教!!!我用的是C#(VS03)进行的开发。
喜欢0 评分0
hsghxm
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数517
  • QQ4604052
  • 铜币1枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-08-10 15:25
<P>//从地理坐标系(经纬度)转换到北京54坐标系<BR>  public static void ConvertJWDToBeijing (ref double jd,ref double wd)<BR>  {<BR>   //其中x,y为上经纬坐标,由用户自己输入;<BR>   double m,n;//m,n分别代表全国54坐标</P>
<P>   double g=0.00669342162297;<BR>   double x0 = 3458144.04,y0 = -146121.96,h = 1.000140682,f = 0.013930556;<BR>   double ll,X,t,N,a=6378245.00,W,p=206265,z,l,b=6356863.01877,c=6399689.90178,k;</P>
<P>   double x = wd;<BR>   double y = jd;<BR>   double DH = 41.0;</P>
<P>   double L = 123.0;//(DH - 0.5) * 3.;</P>
<P>   ll = x*PI/180;<BR>   k = x*3600;<BR>   l = (y - L)*PI/180;<BR>   z = Math.Sqrt((0.00673852541468))*Math.Cos(ll);<BR>   W = Math.Sqrt(1-g*Math.Pow(Math.Sin(ll),2));<BR>   N = a/W;<BR>   t = Math.Tan(ll);<BR>   double mm1 =(Math.Pow(Math.Cos(ll),2)*(5-Math.Pow(t,2)+9*Math.Pow(z,2)+4*Math.Pow(z,4))*Math.Pow(l,2))/24;<BR>   double mm2 =(Math.Pow(Math.Cos(ll),4)*(61-58*Math.Pow(t,2)+Math.Pow(t,4))*Math.Pow(l,4))/720;<BR>   //克拉索夫斯基椭球的子午线弧长公式;<BR>   X = 111134.861*x-(32005.7799*Math.Sin(ll)+133.9238*Math.Pow(Math.Sin(ll),3)<BR>    +0.6973*Math.Pow(Math.Sin(ll),5)+0.0039*Math.Pow(Math.Sin(ll),7))*Math.Cos(ll);<BR>   m = X + Math.Pow(Math.Cos(ll),2)*t*N*Math.Pow(l,2)*(0.5 + mm1 + mm2);</P>
<P>   n = Math.Cos(ll)*N*l*(1 + (Math.Pow(Math.Cos(ll),2)*(1-Math.Pow(t,2)+Math.Pow(z,2))*Math.Pow(l,2))/6<BR>    + (Math.Pow(Math.Cos(ll),4)*(5-18*Math.Pow(t,2)+Math.Pow(t,4)+14*Math.Pow(z,2)-58*Math.Pow(z,2)*Math.Pow(t,2))*Math.Pow(l,5))/120);</P>
<P>   jd = m;<BR>   wd = n + 21000000 + 500000;<BR>  }</P>
MSN:hsghxm@163.com QQ:4604052 (很少用,最好别加) Email:hsghxm@163.com 我的BOLG:http://www.gisempire.com/blog/user1/864/index.htm
举报 回复(0) 喜欢(0)     评分
hsghxm
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数517
  • QQ4604052
  • 铜币1枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2006-08-10 15:34
<P>忘记告诉你:PI,是类的全局变量</P>
<P>Pi=3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679</P>
<P>看你自己要多精确了.. </P>
MSN:hsghxm@163.com QQ:4604052 (很少用,最好别加) Email:hsghxm@163.com 我的BOLG:http://www.gisempire.com/blog/user1/864/index.htm
举报 回复(0) 喜欢(0)     评分
13426253282
路人甲
路人甲
  • 注册日期2006-07-12
  • 发帖数2
  • QQ
  • 铜币117枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2006-08-11 14:43
<P>哇,谢谢!!!谢谢!!!把代码都给我了,谢谢你啊!</P>
举报 回复(0) 喜欢(0)     评分
hsghxm
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数517
  • QQ4604052
  • 铜币1枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2006-08-14 10:31
...客气了<img src="images/post/smile/dvbbs/em08.gif" />
MSN:hsghxm@163.com QQ:4604052 (很少用,最好别加) Email:hsghxm@163.com 我的BOLG:http://www.gisempire.com/blog/user1/864/index.htm
举报 回复(0) 喜欢(0)     评分
游客

返回顶部