哦,你需要增加判断,gps并不是每次取得的精度都够你用。所以,你在取的时候需要设置想要的精度。不够精度的话,需要从新取,参考一下。
TBool IsValidResult()
{
TBool ret = EFalse;
TPositionInfo* positionInfo = static_cast<TPositionInfo*>(iPosInfoBase);
TPosition position;
positionInfo->GetPosition(position);
if (Math::IsNaN(position.Latitude()) ||Math::IsNaN(position.Longitude()))
{
debugf(" Lat or Lon is not valid.");
ret = EFalse;
}
else
{
TReal32 hAcc = position.HorizontalAccuracy();
if (Math::IsNaN(hAcc))
{
debugf(" hAcc is not valid.");
ret = EFalse;
}
else if (hAcc > desiredAccuracy)//desiredAccuracy是你需要的精度
{
ret = EFalse;
}
else
{
ret = ETrue;
}
}
}
return ret;
}
http://topic.csdn.net/u/20100420/09/45445571-63c8-4aee-b62a-76b41083cf66.html