猿问

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

地图上A点到B点(A、B两点的经纬度都已知)<br>求一个方向值 (分八种:正东 正南 正西 正北 东南 东北 西北 西南)<br>在sqlserver写一个函数,找位高手请教哈!

慕婉清6462132
浏览 731回答 2
2回答

幕布斯6054654

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; } //只是思想或算法。估计我想简单了。不过表达一下而已,理解上有问题被别人指正总是好的。

holdtom

你的经纬是怎么表示的,是否有正负这些都应该说一下啊 正是东是西
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答