首页 新闻 会员 周边

地图上A点到B点(A、B两点的经纬度都已知) 求一个方向值 (分八种:正东 正南 正西 正北 东南

0
悬赏园豆:50 [已解决问题] 解决于 2008-08-25 17:25
地图上A点到B点(A、B两点的经纬度都已知)<br>求一个方向值 (分八种:正东 正南 正西 正北 东南 东北 西北 西南)<br>在sqlserver写一个函数,找位高手请教哈!
岁寒づ古枫的主页 岁寒づ古枫 | 初学一级 | 园豆:65
提问于:2008-08-18 17:29
< >
分享
最佳答案
0
int function(int Sx, int Sy, int Tx, int Ty){ int x = Tx - Sx; int y = Ty - Sy; //经线最短修正(防止南辕北辙) if(y > 180){ y -= 180; } else if(y < -180){ y += 180; } int r = 0; //方向枚举,约定:正西 1,西北 2,正北 3,东北 4, 正东 -1,东南 -2,正南 -3, 西南 -4 if(x > 0){ if(y > 0){//第一象限 r = 4;//东北 } else if(y < 0){//第四象限 r = -2;//东南 } else{ r = -1;//正东 } } else if(x < 0){ if(y > 0){//第二象限 r = 2;//西北 } else if(y < 0){//第三象限 r = -4;//东南 } else{ r = 1;//正西 } } else{ if(y > 0){ r = 3;//正北 } else if(y < 0){ r = -3;//正南 } else{ r = 0;//原点 } } return r; } //只是思想或算法。估计我想简单了。不过表达一下而已,理解上有问题被别人指正总是好的。
陛下 | 老鸟四级 |园豆:3938 | 2008-08-19 20:47
其他回答(3)
0
你的经纬是怎么表示的,是否有正负这些都应该说一下啊 正是东是西
重典 | 园豆:2442 (老鸟四级) | 2008-08-18 19:56
0
sqlserver写? 能不能不用TSQL哦
齐.net | 园豆:1421 (小虾三级) | 2008-08-18 21:17
0
楼主,你的经度,纬度是不是用标准的?就像51ditu是经过转换了的!
启程 | 园豆:570 (小虾三级) | 2008-08-18 22:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册