public String toString() {
        StringBuffer sb = new StringBuffer(120);
        sb.append("NavigationInfo");
        if (!m_isFollowing) {
            sb.append(" not following");
        } else {
            if (m_route != null) { 
                sb.append(" route=").append(m_route);
            }
            if (m_isDestinationReached) {
                sb.append(", destreached");
            }
            if (m_isOffTrack) {
                sb.append(", offtrack");
            } 
            if (m_isSpeedCameraActive) {
                sb.append(", speedcamera");
            } 
            if (m_nextWpt != null) {
                sb.append(", wpt=").append(m_nextWpt);
                sb.append(", dist=").append(m_distanceMetersToNextWpt);
                sb.append(", speed=").append(m_speed);
                sb.append(", course=").append(m_snappedCourseDeg);
            }
        }
        
        return sb.toString();
    }