conv.c

来自「GPS导航系统中」· C语言 代码 · 共 39 行

C
39
字号
//#include "coord.h"
#include "conv.h"
#include <math.h>

double relfa(double r){
		return log(tan(r*0.0087266 + 0.7853981));  // 0.7853981为45弧度
		                                           //0.0087266我Pi/360度
}

//经纬度转换直角坐标
void ConvToXY(double jing, double wei, long *cx, long *cy)
{
	*cx = (long)((m_fMaxCX * (jing-m_fMapjw[0]))/(m_fMapjw[1]-m_fMapjw[0])+0.5);
	*cy = (long)((m_fMaxCY * (relfa(m_fMapjw[2])-relfa(wei)))/(relfa(m_fMapjw[2]) - relfa(m_fMapjw[3]))+0.5);
}

//多经纬度转换直角坐标
void ConvToXYs(POINTSCR *points, POINTDB *pointsdb,int n){
	int i;
	for(i=0;i<n;i++){
		ConvToXY((*pointsdb).x, (*pointsdb).y, &((*points).x), &((*points).y));
		pointsdb++;points++;
	}
}
//转换成屏幕坐标
void XYsToDPs(POINTSCR *points,int n){
	int i;
	for(i=0;i<n;i++){
		(*points).x-=offsetx;
		(*points).y-=offsety;
		points++;
	}
}

void XYsToDP(long *cx, long *cy){
	(*cx)-=offsetx;
	(*cy)-=offsety;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?