最近在做一个PDA的项目,用ArcGIS Mobile做开发,需要GPS的实时定位,通过ArcGIS Mobile 提供的serialPortGpsConnection控件连接GPS设备(PDA型号为:LT400)连接代码如下:
//初始化
serialPortGpsConnection1.BaudRate = GpsBaudRate.BaudRate9600;
serialPortGpsConnection1.PortName = "COM3";
serialPortGpsConnection1.Open();
GpsConn = serialPortGpsConnection1;在time的tick事件中去采集坐标点:private void timer1_Tick(object sender, EventArgs e)
{
//保存的GPS经纬度坐标的TXT文件路径
CoordNatePath=@"\Storage Card\GPS.txt"; //判断坐标是否有效
if (GpsConn.Longitude.ToString() == "非数字" || GpsConn.Latitude.ToString() == "非数字") return;
//lat,lon为list类型,分别存储纬度和经度坐标
lat.Add(GpsConn.Latitude);
lon.Add(GpsConn.Longitude);
//每采集10个点,就保存一次
if (lat.Count > 10)
{
//保存点
WriteCoordinateTxt(lat,lon,CoordNatePath);
//清空LIST
lat.Clear();
lon.Clear();
}
可是我连接到设备的时候,运行到: if (GpsConn.Longitude.ToString() == "非数字" || GpsConn.Latitude.ToString() == "非数字") return;
就return掉了,获取到的GpsConn.longtitude,GpsConn.Latitude值都为NaN,空值,百思不得其解,还请大家解惑!
//初始化
serialPortGpsConnection1.BaudRate = GpsBaudRate.BaudRate9600;
serialPortGpsConnection1.PortName = "COM3";
serialPortGpsConnection1.Open();
GpsConn = serialPortGpsConnection1;在time的tick事件中去采集坐标点:private void timer1_Tick(object sender, EventArgs e)
{
//保存的GPS经纬度坐标的TXT文件路径
CoordNatePath=@"\Storage Card\GPS.txt"; //判断坐标是否有效
if (GpsConn.Longitude.ToString() == "非数字" || GpsConn.Latitude.ToString() == "非数字") return;
//lat,lon为list类型,分别存储纬度和经度坐标
lat.Add(GpsConn.Latitude);
lon.Add(GpsConn.Longitude);
//每采集10个点,就保存一次
if (lat.Count > 10)
{
//保存点
WriteCoordinateTxt(lat,lon,CoordNatePath);
//清空LIST
lat.Clear();
lon.Clear();
}
可是我连接到设备的时候,运行到: if (GpsConn.Longitude.ToString() == "非数字" || GpsConn.Latitude.ToString() == "非数字") return;
就return掉了,获取到的GpsConn.longtitude,GpsConn.Latitude值都为NaN,空值,百思不得其解,还请大家解惑!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货