|
(C#版本)wm5.0的GPS问题,如何将GPS例子中添加海拔和方向的参数?
[复制链接]
在windowsMobile5.0中的有一个GPS的例子我看过。(它是通过GPSapi.dll这个文件进行抓取GSP数据的)
现在我已经将那个例子拷到我现在的项目中去了,我想是在原有的基础上添加这样几个参数(海拔、方向、GSP的连接状态和定位状态)
不知道可以吗?
我在GpsPosition类中发现有这样几个成员
internal static int GPS_VALID_ALTITUDE_WRT_SEA_LEVEL = 0x00000040;
internal static int GPS_VALID_ALTITUDE_WRT_ELLIPSOID = 0x00000080;
internal float flAltitudeWRTSeaLevel = 0.0f; // Altitute with regards to sea level, in meters
internal float flAltitudeWRTEllipsoid = 0.0f; // Altitude with regards to ellipsoid, in meters
这几个成员是否是海拔呢?我可以直接拿过来用吗?如果需要转换,又如何转换?
GPS的连接状态能在这个GpsPosition类中的成员里面体现出来吗?
如果能体现再来哪个成员,如何用?(NMEA协议我看过知道一点点)
GPS的定位状态也是同上?
最后一个问题是方向
我可以得到当前经纬度的坐标 我看到坐标是通过这样的方式来转换的
在GpsPosition类中
//纬度坐标
public double Latitude
{
get { return ParseDegreesMinutesSeconds(dblLatitude).ToDecimalDegrees(); }
}
所涉及的方法
//在GpsPosition类中
private DegreesMinutesSeconds ParseDegreesMinutesSeconds(double val)
{
double degrees = (val / 100.0);
double minutes = (Math.Abs(degrees) - Math.Abs((double)(int)(degrees))) * 100;
double seconds = (Math.Abs(val) - Math.Abs((double)(int)val)) * 60.0;
return new DegreesMinutesSeconds((int)degrees, (int)minutes, seconds);
}
//此方法在DegreesMinutesSeconds类中
public double ToDecimalDegrees()
{
int absDegrees = Math.Abs(degrees);
double val = (double)absDegrees + ((double)minutes / 60.0) + ((double)seconds / 3600.0);
return val * (absDegrees / degrees);
}
我想问的是当前经纬度坐标点它本身是没有方向的,我跟我客户那边讨论的时候,他说在进行坐标系转换的时候就可以求出方向了,是这样吗?
他说的这样个坐标系是还是直角坐标系? 如何求方向,请给出思路谢谢了!!!!!
在线急等!!!
|
|